Анатолий Asked:2020-04-03 19:47:20 +0000 UTC2020-04-03 19:47:20 +0000 UTC 2020-04-03 19:47:20 +0000 UTC 从现有数组中收集数组 772 有这样一个数组 Array ( [chat_111] => Array ( [0] => 47 [1] => 1 ) [chat_110] => Array ( [0] => 47 [1] => 3 ) [chat_1167] => Array ( [0] => 32 [1] => 3 ) ) 如何从中创建此类型的新数组: Array ( [47] => [4] [32] => [3] ) 这是下面的图片,示意性地显示了我正在尝试做的事情: php 1 个回答 Voted Best Answer Эдуард 2020-04-03T20:17:51Z2020-04-03T20:17:51Z 底线是循环遍历数组,并在每次迭代时检查键的存在 - 如果这样的键在数组中,我们将当前键的值添加到它的值,如果没有数组中的键,我们添加键 => 值对。例子: $array = [ 'chat_111' => [ 47, 1 ], 'chat_110' => [ 47, 3 ], 'chat_1167' => [ 32, 3 ], ]; $out = []; foreach ($array as $a) { if ( (array_key_exists($a[0], $out)) !== false ) { $out[$a[0]] += $a[1]; } else { $out[$a[0]] = $a[1]; } } var_dump($out); 结果: array (size=2) 47 => int 4 32 => int 3
底线是循环遍历数组,并在每次迭代时检查键的存在 - 如果这样的键在数组中,我们将当前键的值添加到它的值,如果没有数组中的键,我们添加键 => 值对。例子:
结果: