我需要计算多维数组中有多少个值并更新计数值。
但是我得到了一个奇怪的行为,因为只计算了一些值,其他值都是重复的。
这里的代码: phpfiddle
修改 代码如下:
function recursive_array_search($needle,$haystack) {
foreach($haystack as $key=>$value) {
$current_key = $key;
if($needle===$value || (is_array($value) && recursive_array_search($needle,$value) !== false)) {
return $current_key;
}
}
return false;
}
$region = array('Emilia Romagna', 'Abruzzo', 'Lombardia', 'Emilia Romagna', 'Abruzzo', 'Abruzzo');
$locality = array('Bologna', 'Bolognano', 'Milano', 'Bologna', 'Bologna');
$dataRegion = array();
$dataLocality = array();
foreach ($region as $result) {
if($key = recursive_array_search($result, $dataRegion)) {
$dataRegion[$key]['count']++;
} else {
$dataRegion[] = array(
'type' => 'region',
'label' => $result,
'count' => 1,
);
}
}
foreach ($locality as $result) {
if($key = recursive_array_search($result, $dataLocality)) {
$dataLocality[$key]['count']++;
} else {
$dataLocality[] = array(
'type' => 'locality',
'label' => $result,
'count' => 1,
);
}
}
print_r($dataLocality);
echo '<br/> ==================== <br/>';
print_r($dataRegion);
我无法解释为什么会出现这种行为..