我有这个多维数组:
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'是$ key,并且该数组中每个相应的'bar'值(即:
array[138] {
127
47
13
56
}
任何帮助都会很棒。谢谢。
答案 0 :(得分:0)
嗯,这只是循环遍历数组。我真的不知道问题在哪里。
$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声明代码不起作用(谎言</ strong>),I made an example。