У меня этот многомерный массив:
array { [0]=> array(2) { [“foo”]=> int(138) [“bar”]=> int(127) } [1]=> array(2) { [“foo”]=> int(138) [“bar”]=> int(47) } [2]=> array(2) { [“foo”]=> int(138) [“bar”]=> int(13) } [3]=> array(2) { [“foo”]=> int(138) [“bar”]=> int(56) } [4]=> array(2) { [“foo”]=> int(154) [“bar”]=> int(77) } [5]=> array(2) { [“foo”]=> int(154) [“bar”]=> int(69) } [6]=> array(2) { [“foo”]=> int(154) [“bar”]=> int(70) } [7]=> array(2) { [“foo”]=> int(154) [“bar”]=> int(75)
Для каждого значения foo это то же самое, я хочу создать новый массив с 'foo', являющимся ключом $, и каждый из его соответствующих значений «bar» в этом массиве (то есть:
array[138] { 127 47 13 56 }
Любая помощь была бы потрясающей. Спасибо.
Ну, это просто цикл через массивы. Я не понимаю, где проблема.
$new =array(); for($i=0; $i<count($array); $i++) { if(!isset($new[$array[$i]["foo"]])) //Check for existence of "foo" stack $new[$array[$i]["foo"]] = array(); //Create new array, where "bar"s will be put in $new[$array[$i]["foo"]][] = $array[$i]["bar"]; //Put "bar" in corresponding "foo" stack }
В этом случае вы даже можете использовать foreach, я избегал этого, чтобы сделать пример кода удобным для изменения ocassion.
Поскольку OP утверждает, что код не работает (что является ложью ), я сделал пример .