我有这个foreach:
foreach($statuses['data'] as $status){
// processing likes array for calculating fanbase.
if(!empty($status['likes']['data']))
{
foreach($status['likes']['data'] as $likesData){
$frid = $likesData['id'];
$frname = $likesData['name'];
$friendArray[$frid]++;
}
}
print_r(array($friendArray));
}
结果如下:
Array ( [0] => Array (
[333] => 2
[222] => 5
[111] => 2
[444] => 3 ))
Array ( [0] => Array (
[444] => 4
[222] => 3
[333] => 6
[111] => 2
))
.. etc.
我想增加(或求和)相同的键值。我怎样才能做到这一点?
放print_r(array($friendArray));
在foreach之外。谢谢
答案 0 :(得分:0)
您可能只需要在开头定义$friendArray
,例如
$friendArray = []; // initialize the array
foreach ($statuses['data'] as $status) {
// processing likes array for calculating fanbase.
if (!empty($status['likes']['data'])) {
foreach ($status['likes']['data'] as $likesData) {
$frid = $likesData['id'];
$frname = $likesData['name'];
// your version $friendArray[$frid]++;
if (array_key_exists($frid, $friendArray) || 0 == ($friendArray[$frid] = 0)) {
// always true but ensures the key is initialized
$friendArray[$frid] ++;
}
isset($friendArray[$frid]) ? $friendArray[$frid] = 1 : $friendArray[$frid] ++;
}
}
}
print_r($friendArray);