2016-03-30 5 views
2

У меня есть список стран:Как подсчитать все элементы, которые являются одинаковыми в многомерном массиве

Ghana 
Kenya 
Thailand 
India 
Cameroon 
Tanzania 
Kenya 
Cameroon 
India 
Uganda 
Argentina 
Kenya 
Uganda 

Я использую foreach() для отображения страны:

$json = file_get_contents('PATH_TO_JSON'); 
$obj = json_decode($json, true); 

foreach($obj as $project_info){ 
      $list = $project_info['country'];  
} 

Мой вопрос заключается в том, как отображать счет всех стран, которые являются одинаковыми?

Пример:

Kenya(3) 
India(2) 
... and so on 

Я играл с array_count_values(), но не мог заставить его работать.

+0

Вы должны разместить JSON, а не необработанные значения – Machavity

ответ

2

Вы должны извлечь country значения из каждого суб-массива, а затем сосчитать их:

$array = json_decode($json, true); 
$countries_count = array_count_values(array_column($array, 'country')); 

foreach($countries_count as $country => $count) { 
    echo "$country ($count)"; 
} 

Я использовал $array вместо $obj, потому что это массив не является объектом.

+0

Спасибо, сэр, работает отлично! – Tsea

Смежные вопросы