首页 > 解决方案 > 搜索多维数组并从结果中创建一个新数组

问题描述

我想在多维数组中搜索特定值并使用结果数据创建一个新数组。

原始数组是:

Array (
  [0] => Array (
    [make] => honda
    [type] => motorcycle
  )
  [1] => Array (
    [make] => toyota
    [type] => truck
  )
  [2] => Array (
    [make] => acura
    [type] => car
  )
  [3] => Array (
    [make] => subaru
    [type] => car
  )
)

我想要的结果数组:

Array (
  [0] => Array (
    [make] => acura
    [type] => car
  )
  [1] => Array (
    [make] => subaru
    [type] => car
  )
)

我预计使用array_search('car', array_column($arr, 'type'));来获取与找到的值关联的键,但我不确定如何利用找到的键来获取新数组?

标签: phparraysmultidimensional-array

解决方案


只是为了好玩,如果所有make值对于 都是唯一的car,并且您只想要make,那么您可以对其进行索引并array_keys与 search 参数一起使用:

$cars = array_keys(array_column($arr, 'type', 'make'), 'car');

回报:

Array (
  [0] => acura
  [1] => subaru
)

推荐阅读