array_column

官方地址:array_column

  • array_column 只能在 PHP版本5.5以上的运行,5.3是不支持这个函数的。如果5.3使用会报:
Fatal error: Call to undefined function array_column()
  • array_column如何使用?
  • 举下面几个例子:
  • 二维数组中提取出某一列,成为一维数组。
$a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));
$a = array_column($a,'discussion_id');
var_dump($a);

运行结果:

array(3) {
[0]=>
int(123456)
[1]=>
int(27495220)
[2]=>
int(27495087)
}
  • 二维数组中,某一列作为下标,某一列作为值,成为一维数组。
$b = array(array('id'=>345,'name'=>'小王','address'=>'beijing'),array('id'=>298,'name'=>'小张','address'=>'shanghai'),array('id'=>390,'name'=>'小明','address'=>'guangzhou'));
$b = array_column($b,'name','id');
var_dump($b);

运行结果:

array(3) {
[345]=>
string(6) "小王"
[298]=>
string(6) "小张"
[390]=>
string(6) "小明"
}

如果web运行环境的PHP版本小于5.5,怎么提取二维数组的某一列作为一位数组呢?

  • 看下面这个例子,根据数组中的下标重新生成数组:
    public static function getNewArrByElement($list, $element) {
if(!isset($list) || !is_array($list) || empty($list)) {
return array();
}
if(!isset($element) || empty($element)) {
return array();
}
$j = 0;
$result = array();
for($i = 0; $i < count($list); $i++) {
if(isset($list [$i] [$element])) {
$result [$j] = $list [$i] [$element];
$j++;
} else {
return array();
}
}
return $result;
}
$a = array(array('discussion_id' => 123456),array('discussion_id' => 27495220), array('discussion_id' => 27495087));
$a = CommonUtil::getNewArrByElement($a,'discussion_id');

运行结果:

array(3) {
[0]=>
int(123456)
[1]=>
int(27495220)
[2]=>
int(27495087)
}

php数组函数分析--array_column的更多相关文章

  1. split(),preg_split()与explode()函数分析与介

    split(),preg_split()与explode()函数分析与介 发布时间:2013-06-01 18:32:45   来源:尔玉毕业设计   评论:0 点击:965 split()函数可以实 ...

  2. Linux-0.11内核源代码分析系列:内存管理get_free_page()函数分析

    Linux-0.11内存管理模块是源码中比較难以理解的部分,如今把笔者个人的理解发表 先发Linux-0.11内核内存管理get_free_page()函数分析 有时间再写其它函数或者文件的:) /* ...

  3. PHP之数组函数

    php数组中的预定义变量 预定义常量 CASE_LOWER (integer) CASE_LOWER 用在array_change_key_case()中将数组的键名转换为小写字母.这也是array_ ...

  4. PHP强大的数组函数

    <?php/** * Created by PhpStorm. * User: 63448 * Date: 2018/5/6 * Time: 21:56 */echo "<h3& ...

  5. php数组函数(分类基本数组函数,栈函数,队列)

    php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...

  6. 辛星解读之php中的重点函数第一节之数组函数

    这里我已经写好它的pdf版本号了,比本博客更加适合阅读.首先说一下它在百度网盘的下载地址把:百度网盘下载 ,假设左边连接跪了.能够在浏览器中输入:http://pan.baidu.com/s/1qW5 ...

  7. PHP 数组函数大全

    PHP数组函数是核心的一部分.无需安装即可使用这些函数 函数名称 描述 array_change_key_case 将数组中的所有键名修改为全大写或小写 array_chunk 将一个数组分割成多个 ...

  8. 向php数组函数array_colum()传入奇怪的数组

    <?php // 向php数组函数array_colum()传入奇怪的数组 // array_colum()函数 返回行列数组的其中一列,可以用其他列的键充当键 $arr = [ [ 1, 2, ...

  9. 【风马一族_php】数组函数

    原文来自:http://www.cnblogs.com/sows/p/6045699.html (博客园的)风马一族 侵犯版本,后果自负  2016-11-09 15:56:26 数组 函数 php- ...

随机推荐

  1. python MySQLdb 对mysql基本操作方法

    #!/usr/bin/env python # -*- coding:utf-8 -*- import MySQLdb conn = MySQLdb.connect(host=',db='host') ...

  2. Centos允许root远程登录设置

      以root权限执行 vi /etc/ssh/sshd_config 将 #PermitRootLogin yes 这一行的“#”去掉,修改为: PermitRootLogin yes 重启ssh服 ...

  3. 洛谷P1119 灾后重建[Floyd]

    题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...

  4. CODEVS3037 线段覆盖 5[序列DP 二分]

    3037 线段覆盖 5   时间限制: 3 s   空间限制: 256000 KB   题目等级 : 钻石 Diamond 题解       题目描述 Description 数轴上有n条线段,线段的 ...

  5. libpng使用

    自己的实现 unsigned int component(png_const_bytep row, png_uint_32 x, unsigned int c, unsigned int bit_de ...

  6. Spring源码分析——BeanFactory体系之抽象类、类分析(二)

    上一篇分析了BeanFactory体系的2个类,SimpleAliasRegistry和DefaultSingletonBeanRegistry——Spring源码分析——BeanFactory体系之 ...

  7. java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决

    jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...

  8. jQuery取得select选择的文本与值

    jquery获取select选择的文本与值获取select :获取select 选中的 text :$("#ddlregtype").find("option:selec ...

  9. Angular指令2

    scope Create a new scope for this directive rather than inheriting the parent scope. controller Crea ...

  10. java8日期时间

    ###与时间有关的5个包* java.time* java.time.chrono* java.time.format* java.time.temporal* java.time.zone###ja ...