首页 >后端开发 >php教程 >PHP的array_column()函数用法详解

PHP的array_column()函数用法详解

PHPz
PHPz原创
2023-06-27 12:58:485422浏览

在PHP中,经常需要对数组进行处理和操作。有时候,需要从一个多维数组中获取特定的一列数据,这时候就可以使用array_column()函数来实现。本文将详细介绍array_column()函数的用法。

一、什么是array_column()函数

array_column()是一个PHP函数,用于从一个多维数组中获取指定的一列数据。该函数在PHP5.5版本中被引入,并且支持关联数组和索引数组。

函数原型:
array_column ( array $array , mixed $column_key [, mixed $index_key = null ] ) : array

参数说明:
$array:要操作的多维数组;
$column_key:要获取的列的键名或者是数值;
$index_key:可选参数,若指定该值,则作为返回数组的键名。

二、使用示例

下面我们来看一些array_column()函数的使用示例。

  1. 索引数组

假设我们有一个索引数组$users,其中保存了一些用户的信息,我们希望从中取出所有用户的姓名。可以通过以下代码来实现:

$users = array(0 => array('id'=>1, 'name'=>'Tom', 'email'=>'tom@example.com'),
               1 => array('id'=>2, 'name'=>'Jerry', 'email'=>'jerry@example.com'),
               2 => array('id'=>3, 'name'=>'Mike', 'email'=>'mike@example.com'));

$names = array_column($users, 'name');

print_r($names);

输出结果为:

Array (
    [0] => Tom
    [1] => Jerry
    [2] => Mike
)
  1. 关联数组

如果我们的数组是一个关联数组,我们可以以同样的方式获取指定的一列数据。

例如,我们有一个关联数组$students,其中包含了学生的一些信息,我们希望获取所有学生的年龄:

$students = array('Tom' => array('age'=>20, 'gender'=>'male', 'city'=>'Beijing'),
                  'Jerry' => array('age'=>21, 'gender'=>'female', 'city'=>'Shanghai'),
                  'Mike' => array('age'=>19, 'gender'=>'male', 'city'=>'Guangzhou'));

$ages = array_column($students, 'age');

print_r($ages);

输出结果为:

Array (
    [Tom] => 20
    [Jerry] => 21
    [Mike] => 19
)
  1. 获取多个键值

如果我们希望从一个多维数组中获取多个键值,可以把需要获取的键名放在一个数组中,作为第二个参数传入array_column()函数。

例如,我们有一个包含了多个城市的温度数据的数组$temperatures,我们希望获取每个城市的平均气温和最高气温,可以这么做:

$temperatures = array(
    array('city'=>'Beijing', 'average'=>20, 'highest'=>28),
    array('city'=>'Shanghai', 'average'=>23, 'highest'=>30),
    array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32)
);

$infos = array_column($temperatures, array('average', 'highest'), 'city');

print_r($infos);

输出结果为:

Array (
    [Beijing] => Array (
        [average] => 20
        [highest] => 28
    )
    [Shanghai] => Array (
        [average] => 23
        [highest] => 30
    )
    [Guangzhou] => Array (
        [average] => 25
        [highest] => 32
    )
)
  1. 指定返回数组的键名

有时候,我们希望在获取指定的列的数据时,指定返回数组的键名。可以在array_column()函数的第三个参数内指定。

例如,在上一个例子中,我们希望以"平均气温"和"最高气温"作为返回数组的键名,可以这样写:

$temperatures = array(
    array('city'=>'Beijing', 'average'=>20, 'highest'=>28),
    array('city'=>'Shanghai', 'average'=>23, 'highest'=>30),
    array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32)
);

$infos = array_column($temperatures, array('average', 'highest'), 'city');

$infos = array_map(function($v){return ['平均气温'=>$v[0], '最高气温'=>$v[1]];}, $infos);

print_r($infos);

输出结果为:

Array (
    [Beijing] => Array (
        [平均气温] => 20
        [最高气温] => 28
    )
    [Shanghai] => Array (
        [平均气温] => 23
        [最高气温] => 30
    )
    [Guangzhou] => Array (
        [平均气温] => 25
        [最高气温] => 32
    )
)

三、结语

array_column()函数可以方便地从多维数组中获取指定的一列数据,使用方法简单明了。在实际的开发中,我们可以充分利用这个函数,提高数组处理的效率和准确性。

以上是PHP的array_column()函数用法详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn