【问题标题】:Search multi-dimensional array and create a new array from results [duplicate]搜索多维数组并从结果中创建一个新数组[重复]
【发布时间】:2021-12-03 19:11:04
【问题描述】:

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

原来的数组是:

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')); 来获取与找到的值关联的键,但我不确定如何利用找到的键来获取新数组?

【问题讨论】:

  • 我认为array_filter 在这里会有所帮助,我提供了example
  • 我已经更新了我的example,它现在重新索引了数组

标签: php arrays multidimensional-array


【解决方案1】:

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

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

返回:

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

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多