php:如何获取键值的索引数组

时间:2014-02-09 09:35:59

标签: php arrays

假设我有一个类似

的数组
$arr = array (
    array( 'foo' => 'Lorem' ),
    array( 'foo' => 'ipsum' ),
    array( 'foo' => 'dolor' ),
    array( 'foo' => 'sit'   )
);

如何快速将此数组转换为键“foo”的索引数组?所以结果是

Array
(
    [0] => 'Lorem'
    [1] => 'ipsum'
    [2] => 'dolor'
    [3] => 'sit'
)

PHP功能有什么快捷方式吗?或者我只需要创建一个新数组,迭代另一个数组并手动插入值。

3 个答案:

答案 0 :(得分:2)

您可以使用PHP 5.5中提供的array_column

print_r(array_column($arr,'foo'));

代码......

<?php
$arr = array (
    array( 'foo' => 'Lorem' ),
    array( 'foo' => 'ipsum' ),
    array( 'foo' => 'dolor' ),
    array( 'foo' => 'sit'   )
);

print_r(array_column($arr,'foo'));

Demo

答案 1 :(得分:2)

您可以使用array_map()。这有效 -

$new_arr = array_map(function($v){return $v['foo'];}, $arr);
var_dump($new_arr);
//  OUTPUT
array
  0 => string 'Lorem' (length=5)
  1 => string 'ipsum' (length=5)
  2 => string 'dolor' (length=5)
  3 => string 'sit' (length=3)

答案 2 :(得分:1)

..或使用array_map(..)

<?php
$arr = array (
    array( 'foo' => 'Lorem' ),
    array( 'foo' => 'ipsum' ),
    array( 'foo' => 'dolor' ),
    array( 'foo' => 'sit'   )
);

print_r(array_map(function($x){return $x["foo"];}, $arr));

<强>输出

Array
(
    [0] => Lorem
    [1] => ipsum
    [2] => dolor
    [3] => sit
)