如何获得多维数组某一列的值?

[
    "id" => 7
    "parent_id" => 9
    "child_id" => 11
    "children" => [
      0 =>  [
        "id" => 4,
        "parent_id" => 11,
        "child_id" => 2
      ]
      1 =>  [
        "id" => 5,
        "parent_id" => 11,
        "child_id" => 3
      ]
      2 =>  [
        "id" => 6,
        "parent_id" => 11,
        "child_id" => 4
      ]
    ]
  ]
  1 =>  [
    "id" => 8,
    "parent_id" => 10,
    "child_id" => 11
    "children" => [
      0 =>  [
        "id" => 4,
        "parent_id" => 11,
        "child_id" => 2
      ]
      1 =>  [
        "id" => 5,
        "parent_id" => 11,
        "child_id" => 3
      ]
      2 =>  [
        "id" => 6,
        "parent_id" => 11,
        "child_id" => 4
      ]
    ]
  ]

生成规则如下
每个对象 parent_id->child_id->children下的child_id为一个数组
上面生成结果为

[[9,11,2,3,4],[10,11,2,3,4]]
阅读 1.4k
1 个回答
$arr = [
  [
    "id" => 7,
    "parent_id" => 9,
    "child_id" => 11,
    "children" => [
      [
        "id" => 4,
        "parent_id" => 11,
        "child_id" => 2
      ],
      [
        "id" => 5,
        "parent_id" => 11,
        "child_id" => 3]
      ,
      [
        "id" => 6,
        "parent_id" => 11,
        "child_id" => 4
      ]
    ]
  ],
  [
    "id" => 8,
    "parent_id" => 10,
    "child_id" => 11,
    "children" => [
      [
        "id" => 4,
        "parent_id" => 11,
        "child_id" => 2
      ], [
        "id" => 5,
        "parent_id" => 11,
        "child_id" => 3
      ], [
        "id" => 6,
        "parent_id" => 11,
        "child_id" => 4
      ]
    ]
  ]
];

$result = array_map(function ($item) {
  return array_merge([$item['parent_id'], $item['child_id']], array_map(function ($item) {
    return $item['child_id'];
  }, $item['children']));
}, $arr);

print_r($result);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题