从多值数组中获取单值数组的最佳方法

时间:2015-01-23 21:58:10

标签: php arrays

有这样的数组:

Array
(
    [0] => Array
        (
            [Slot_id] => 7048,
            [name] => value
        )

    [1] => Array
        (
            [Slot_id] => 7049,
            [name] => value
        )

)

我想获得以下数组形式

 Slot_id => Array
    (
       [0] => 7048,
       [1] => 7049
     )

目前我正在使用foreach函数,还有其他最佳方法吗?

2 个答案:

答案 0 :(得分:6)

如果您使用PHP> = 5.5,那么array_column就是解决方案:

$result = array_column($input, 'Slot_id');

对于早期版本,可以手动foreach,也可以选择:

  • array_map

    // assumes PHP 5.3 for lambda function, for earlier PHP just do foreach
    $result = array_map(function($row) { return $row['Slot_id']; }, $input);
    
  • array_walk

    // assumes PHP 5.4 for short array syntax, for 5.3 use array() instead of []
    $result = [];
    array_walk($input, function($row) use (&$result) { $result[] = $row['Slot_id']; });
    

答案 1 :(得分:0)

使用array_column函数: https://php.net/manual/fr/function.array-column.php

$subArray = array_column ($your_array, 'Slot_id');