您的位置:

PHP array_column函数详解

一、概述

array_column函数是PHP官方提供的函数之一,用于从多维数组中取出某个键的值,返回这些值作为一个新的数组。该函数可以在PHP 5.5.0及以上版本中使用。

    // 获取二维数组中的name列
    $arr = array(
        array('id' => 1, 'name' => 'John', 'age' => 26),
        array('id' => 2, 'name' => 'Mark', 'age' => 32),
        array('id' => 3, 'name' => 'Sara', 'age' => 19)
    );
    $nameArr = array_column($arr, 'name');
    print_r($nameArr); // 输出 ['John', 'Mark', 'Sara']

二、基本用法

array_column的基本用法已经在上面的示例中展现出来了。下面我们再来看更多的实例。

1、从多维数组中获取某一列:

    // 获取二维数组中的age列
    $arr = array(
        array('id' => 1, 'name' => 'John', 'age' => 26),
        array('id' => 2, 'name' => 'Mark', 'age' => 32),
        array('id' => 3, 'name' => 'Sara', 'age' => 19)
    );
    $ageArr = array_column($arr, 'age');
    print_r($ageArr); //输出 [26, 32, 19]

2、从对象数组中获取某一列:

    // 从对象数组中获取name列
    $arr = array(
        (object)array('id' => 1, 'name' => 'John', 'age' => 26),
        (object)array('id' => 2, 'name' => 'Mark', 'age' => 32),
        (object)array('id' => 3, 'name' => 'Sara', 'age' => 19)
    );
    $nameArr = array_column($arr, 'name');
    print_r($nameArr); // 输出 ['John', 'Mark', 'Sara']

3、获取多个列的值:

    // 获取二维数组中的name和age列
    $arr = array(
        array('id' => 1, 'name' => 'John', 'age' => 26),
        array('id' => 2, 'name' => 'Mark', 'age' => 32),
        array('id' => 3, 'name' => 'Sara', 'age' => 19)
    );
    $nameAgeArr = array_column($arr, 'name', 'age');
    print_r($nameAgeArr); // 输出 [26=>'John', 32=>'Mark', 19=>'Sara']

需要注意的是,当第三个参数key存在时,返回由键值对组成的新数组,否则返回由值组成的新数组。比如上例中的返回结果就是一个关联数组,关键字为age,值为name。如果没有指定key,则返回的就是一个普通的索引数组。

三、注意事项

1、当使用key参数时,确保您所选择的键具有唯一性,这样才能保证返回的数组正确无误。

2、如果指定的键不存在或者在内部数组中不存在,array_column函数不会报错,而是在结果中跳过该项并继续处理其他项。

总结

在PHP开发中,array_column函数是非常常用的一个函数,可以帮助我们快速地从多维数组或者对象数组中获取某一列或者多列的值,提高了开发效率。需要注意的是,在使用过程中要遵循相关的注意事项,以保证程序的正确性。