我想将$my_array按group_order值合并。
$my_array 结构:
array(4) {
array(1) {
object(stdClass) {
["title"]=> string(23) "Title 1"
["group_order"]=> string(1) "2"
}
}
array(1) {
object(stdClass) {
["title"]=> string(32) "Title 2"
["group_order"]=> string(1) "1"
}
}
array(1) {
object(stdClass) {
["title"]=> string(21) "Title 3"
["group_order"]=> string(1) "1"
}
}
array(1) {
object(stdClass) {
["title"]=> string(23) "Title 4"
["group_order"]=> string(1) "2"
}
}
}期望的结果:
array(2) {
array(2) {
object(stdClass) {
["title"]=> string(23) "Title 1"
["group_order"]=> string(1) "2"
}
object(stdClass) {
["title"]=> string(23) "Title 4"
["group_order"]=> string(1) "2"
}
}
array(2) {
object(stdClass) {
["title"]=> string(32) "Title 2"
["group_order"]=> string(1) "1"
}
object(stdClass) {
["title"]=> string(21) "Title 3"
["group_order"]=> string(1) "1"
}
}
}我试过这样做:
foreach ($my_array as $row) {
foreach ($row as $item) {
$grouped[$item->group_order] = $row;
}
}但是第二个group元素总是覆盖第一个元素,而不是包含4个项的数组,而是有两个项。我也尝试过array_merge(),但结果是一样的。
发布于 2015-01-12 14:57:17
尝试在末尾添加空括号[],以便将值附加到数组中,而不是覆盖它们。
foreach ($my_array as $row) {
foreach ($row as $item) {
$grouped[$item->group_order][] = $item;
}
}发布于 2015-01-12 15:03:38
你增加了一个你不需要的预言片?要让他们分开就给他们一个身份。
$i=0;
foreach ($myarray as $item) {
$grouped[$item->group_order][$i] = $item;
$i++;
}https://stackoverflow.com/questions/27904755
复制相似问题