/ / Създаване на нов масив с помощта на стойности от многоизмерните стойности за споделяне на масиви - php, масиви, многоизмерни масиви, foreach

Създайте нов масив, използвайки стойности от многоизмерните стойности за споделяне на масиви - php, масиви, многоизмерни масиви, foreach

Имам този многоизмерен масив:

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
}

Всяка помощ би била страхотна. Благодаря ти.

Отговори:

0 за отговор № 1

Е, това е просто looping чрез масиви. Аз наистина не знам къде е проблемът.

$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 в този случай, избягвах го, за да направя примерен код, който е приятелски настроен към промените.
Тъй като ОП заявява, че кодът не работи (което е лъжа), Направих пример.