首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按不工作的特定值合并关联活动数组

按不工作的特定值合并关联活动数组
EN

Stack Overflow用户
提问于 2015-01-12 14:53:53
回答 2查看 30关注 0票数 0

我想将$my_arraygroup_order值合并。

$my_array 结构:

代码语言:javascript
运行
复制
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"
    }
  }
}

期望的结果:

代码语言:javascript
运行
复制
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"
    }
  }
}

我试过这样做:

代码语言:javascript
运行
复制
foreach ($my_array as $row) {
    foreach ($row as $item) {
        $grouped[$item->group_order] = $row;
    }
}

但是第二个group元素总是覆盖第一个元素,而不是包含4个项的数组,而是有两个项。我也尝试过array_merge(),但结果是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-12 14:57:17

尝试在末尾添加空括号[],以便将值附加到数组中,而不是覆盖它们。

代码语言:javascript
运行
复制
foreach ($my_array as $row) {
    foreach ($row as $item) {
        $grouped[$item->group_order][] = $item;
    }
}
票数 4
EN

Stack Overflow用户

发布于 2015-01-12 15:03:38

你增加了一个你不需要的预言片?要让他们分开就给他们一个身份。

代码语言:javascript
运行
复制
$i=0;
foreach ($myarray as $item) {
    $grouped[$item->group_order][$i] = $item;
    $i++;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27904755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档