前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组函数 array_column

数组函数 array_column

作者头像
写PHP的老王
发布2019-08-12 15:22:12
1.5K0
发布2019-08-12 15:22:12
举报
文章被收录于专栏:写PHP的老王

内容目录

array_column 函数简介传入一个参数,返回二维数组中指定列传入一个参数,指定列不一定存在的情况传入两个参数,且两个参数对应的列都存在且不重复如果第二个参数对应的列的数据有重复的情况如果对应键或者值的列数据不一定存在情况总结

array_column 函数简介

array_column() 返回input数组中键值为column_key的列, 如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。

这是php.net中对该函数的说明。说的很明白却有那么的晕。还是先看看不同情况下的输出结果吧。一下所有的实例都以相同的数组$data输入为参考,输入如下。

代码语言:javascript
复制
$data = [
 ['id'=>1,'name'=>'A','city'=>'Beijin','like'=>'Red','info'=>''],
 ['id'=>2,'name'=>'B','city'=>'Shanghai','age'=>20,'info'=>'defualt'],
 ['id'=>2,'name'=>'C','city'=>'Guangdong','age'=>'30','info'=>'empty']
];
传入一个参数,返回二维数组中指定列
代码语言:javascript
复制
$d1 = array_column($data,'id');
print_r($d1);

输出内容是:

代码语言:javascript
复制
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

当输入参数只有一个参数,且指定列都存在的情况下,array_column 函数的左右是取出二维数组的这一列的数据。

传入一个参数,指定列不一定存在的情况

程序中,数据的结构不统一最容易导致bug的出现,因此需要验证在指定列数据缺失部分的情况函数的返回结果。原始数据age在第一个子数组中是不存在的。

代码语言:javascript
复制
$d2 = array_column($data,'age');
print_r($d2);

对于以上的内容输出结果如下:

代码语言:javascript
复制
Array
(
    [0] => 20
    [1] => 30
)

这中情况,会不不存该列的数据丢弃掉,返回数组的个数相比原来的数据减少了!!!因此,当传入一个参数,所指定的列不存在的情况,array_column将返回一个空数组。

传入两个参数,且两个参数对应的列都存在且不重复
代码语言:javascript
复制
$d1 = array_column($data,'id','name');
print_r($d1);

以上代码输出内容如下:

代码语言:javascript
复制
Array
(
    [A] => 1
    [B] => 2
    [C] => 3
)

输出以第二个参数对应列为键,第一个参数对应列为值的关联数组。

如果第二个参数对应的列的数据有重复的情况
代码语言:javascript
复制
$d1 = array_column($data,'id','city');
print_r($d1);

对于有重复情况的输入,输出内容如下:

代码语言:javascript
复制
Array
(
    [Beijin] => 3
    [Shanghai] => 2
)

相同键盘,保留最后一次的值。

如果对应键或者值的列数据不一定存在情况
代码语言:javascript
复制
$d1 = array_column($data,'age','name');
$d2 = array_column($data,'name','age');
print_r($d1);
print_r($d2);

以上代码输出内容如下:

代码语言:javascript
复制
Array
(
    [B] => 20
    [C] => 30
)
Array
(
    [0] => A
    [20] => B
    [30] => C
)

如果值不存在,直接丢弃该子数组数据。当键不存在的情况,则以下标为0开始填充数组。如果输入的键根本不存在,则完全跟一个参数输入的时候一样

总结

php 数组函数array_column 函数使用的作用:

  • 单个输入,返回指定列的值。如果某项数据不存在该列,则返回数据没有该项数据。如果列不存在,则返回空数组。只返回存在该列的数据项该列组成的数组。
  • 多个输入,返回以第一个参数对应列为值,第二个参数队列列数据为键的关联数组。键对应列不完整,从0开始递增填充。值列对应数据不完整,直接丢弃不完整数据。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写PHP的老王 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容目录
  • array_column 函数简介
    • 传入一个参数,返回二维数组中指定列
      • 传入一个参数,指定列不一定存在的情况
        • 传入两个参数,且两个参数对应的列都存在且不重复
          • 如果第二个参数对应的列的数据有重复的情况
            • 如果对应键或者值的列数据不一定存在情况
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档