是否有任何PHP array_ *函数用于从多维数组中提取单个值?

时间:2017-03-22 05:13:41

标签: php arrays multidimensional-array array-filter array-walk

如果我有一个多维数组,并且我想从中提取一些数据并将它们放在一个新数组中,是否有任何现有的array_*()函数可以这样做?

例如,如果我有以下数组:

array(
    [
        'id'    => 1,
        'num'   => 200,
        'text'  => 'abc'
    ],
    [
        'id'    => 2,
        'num'   => 230,
        'text'  => 'def'
    ],
    [
        'id'    => 3,
        'num'   => 100,
        'text'  => 'ghi'
    ],

)

我想获得以下结果数组:

[ 'abc', 'def', 'ghi' ]

当然我总是可以使用foreach()或类似的东西手动完成,但是单行总是很好:)

2 个答案:

答案 0 :(得分:1)

尝试使用array_column函数;

array_column(array $data, 'key')

答案 1 :(得分:0)

您可以在php

中使用array_map()
<?php
    $array = array([
            'id'    => 1,
            'num'   => 200,
            'text'  => 'abc'
        ],
        [
            'id'    => 2,
            'num'   => 230,
            'text'  => 'def'
        ],
        [
            'id'    => 3,
            'num'   => 100,
            'text'  => 'ghi'
        ],

    );


    $return = array_map(function ($value) {
        return  $value['text'];
    }, $array);

    echo "<pre>"; 
    print_R($return);
    ?>