【问题标题】:PHP Get only select key values in a multidimensional php array with variable size?PHP仅在可变大小的多维php数组中选择键值?
【发布时间】:2018-03-15 02:46:55
【问题描述】:

对于一个动态长度的多维数组,我怎样才能得到一个只包含特定键值的数组。

假设我只想要颜色值。

0  {
        color => green,
        size => large,
}
1 {
        color => green,
        size => small,
    }
2 {
        color => orange,
        size => small,
    }

例如,该数组的所需输出将是: {绿色,绿色,橙色}

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    $colors = [];
    foreach ($in_array as $item) {
        $colors[] = $item['color'];
    }
    

    是一种非常传统的方式,但从 PHP 5.5 开始,您还可以执行以下操作:

    $colors = array_column($in_array, 'color');
    

    第二种方式更具人类可读性,在小型数据集上,性能差异可以忽略不计,但值得注意的是,foreach 比 array_* 函数效率略高。

    【讨论】:

      【解决方案2】:

      array_map 使用第二个参数中的每个给定项调用一个函数,返回一个函数返回的数组。

      function getColors($item)
      {
          return($item['color']);
      }
      $colors = array_map("getColors", $array); // ['green', 'green', 'orange']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-24
        • 1970-01-01
        • 2012-04-11
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        相关资源
        最近更新 更多