PHP:如何获得键值的索引数组[复制](php: how to get indexed array

2019-10-29 15:10发布

这个问题已经在这里有一个答案:

  • 从关联数组PHP存储密钥值到简单阵列 5回答

假设我有一个数组像

$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功能的任何快速的方法? 或者我只需要创建一个新的数组,遍历另一个和手动插入值。

Answer 1:

你可以利用array_column它可以从PHP 5.5

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'));

演示



Answer 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)


Answer 3:

..或使用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
)


文章来源: php: how to get indexed array of key values [duplicate]
标签: php arrays