<?php
// 向php数组函数array_colum()传入奇怪的数组
// array_colum()函数 返回行列数组的其中一列,可以用其他列的键充当键
$arr = [
[ 1, 2, 3, 4, 5 ],
[ 1, 2, 3, 4, 5 ],
[ 1, 2, 3, 4, 5 ]
];
print_r( array_column( $arr, 1, 2 ) );
// Array
// (
// [3] => 2
// )
// 本例,用第三列作返回第二列的键,第三列的值都是4,array_colum()返回的数组键名重复,
// 于是值被覆盖,最后只剩下一个元素
print_r( array_column( $arr, 1 ) );
// Array
// (
// [0] => 2
// [1] => 2
// [2] => 2
// )
// array_colum( $arr, 1 ) 这样使用就可以获得第二列的值。 $arr = [
[1, 2, 3, 4],
[5, 6, 7],
[8, 9, 10, 11]
];
print_r( array_column( $arr, 1, 3 ) );
// Array
// (
// [4] => 2
// [5] => 6
// [11] => 9
// )
// 本例中,目标数组的第四列缺少一项,于是返回的数组第二个元素的键被系统php自动设置成了5
$arr = [
[1, 2, 3, 4],
[5, 6, 7],
[8, 9, 10, 11]
];
print_r( array_column( $arr, 3, 1 ) );
// Array
// (
// [2] => 4
// [9] => 11
// )
// 在本例中,目标数组的第四列少一个值,返回的数组并不含这一项。
$arr = [
['a', 'b', 'c', 'd'],
['e', 'f', 'g' ],
['i', 'j', 'k', 'l']
];
print_r( array_column( $arr, 1, 3 ) );
// Array
// (
// [d] => b
// [0] => f
// [l] => j
// )
// 当第四列其中一个没有值时,系统会自动补上索引键名
$arr = [
['a', 'b', 'c', 'd'],
['e', 'f', 'g' ],
['i', 'j', 'k', 'l']
];
print_r( array_column( $arr, 3, 1 ) );
// 和上面一样,当某一列没有值,而又被指定为返回数组的值,这时,返回数组不含这个值
$arr = [
['a' => 'a', 'b' => 'b', 'c' => 'c'],
['d' => 'd', 'e' => 'e', 'f' => 'f'],
['g' => 'g', 'h' => 'h', 'i' => 'i']
];
print_r( array_column( $arr, 'b', 'c' ) );
// Array
// (
// [c] => b
// )
// 因为指定的这两列都只有一个满足条件,于是返回数组只有一个元素

向php数组函数array_colum()传入奇怪的数组的更多相关文章

  1. PHP数组函数 array_multisort() ----对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  2. php中的常用数组函数(二)(数组元素过滤 array_filter())

    array_filter($arr, 'filter_func'); //参数1,要过滤的数组 //参数2,过滤的函数,返回false时,不添加这个元素,返回true添加这个元素. 示例代码: /** ...

  3. php中的常用数组函数(五)(数组中获取键名集合)

    array_keys($arr, $search_value, $strict); --数组中获取键名的集合. //参数1 要检索的数组:参数2 要检索的键值 默认NULL: 参数3 是否严格比较(= ...

  4. php中的常用数组函数(四)(数组中是否有某个键名或索引)

    /***********array_key_exists(检查键名或索引是否在数组中)*****************/ $arr1 = array('name' => 'Sheldon', ...

  5. php中的不常用数组函数(一)(数组中元素的键和值对调 array_flip())

    array_flip($arr); //交换数组中的键和值. //如下所示,如果$arr中有相同的值.交换之后 会被旧的覆盖,最后一个有效. /***********array_flip(交换数组中的 ...

  6. c语言 函数返回二位数组 函数参数为二维数组

    通过typedef可以简单实现.也可以直接写. 写了两个简单的矩阵操作的函数简单示例. #include <stdio.h> #include <stdlib.h> const ...

  7. php常用数组函数回顾一

    数组对于程序开发来说是一个必不可少的工具,我根据网上的常用数组函数,结合个人的使用情况,进行数组系列的总结复习.里面当然不只是数组的基本用法,还有相似函数的不同用法的简单实例,力求用最简单的实例,记住 ...

  8. php操作数组函数

    整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数.数组的分段和填充.数组与栈.数组与列队.回调函数.排序.计算.其他的数组函数等. 一.数组操作的基本函数 数组的键名和值 array_va ...

  9. PHP中常用的数组函数总结

    整理了一份PHP开发中数组操作大全,包含有数组操作的基本函数,数组的分段和填充,数组与栈,数组与列队,回调函数,排序,计算,其他的数组函数等. 一,数组操作的基本函数 数组的键名和值 array_va ...

随机推荐

  1. go正则表达式

    单行模式(?s:(.?))万能用法尽量匹配少的文本,最关键的是可以匹配换行的文本,直接写.?不能匹配\n package main import ( "fmt" "reg ...

  2. 极限挑战----3小时完成OA系统(失败)

    今天老师要求三小时把OA系统做出了,之前一点也没接触过,对其不了解,而且这几天一直把时间放在六级了,对Web重视有点少. 最终我只做了登录和校验,可以显示富文本框,但不能提交数据库. 总之还有还多没有 ...

  3. 【洛谷P4931】 情侣?给我烧了!(加强版)组合计数

    挺有意思的一道题... code: #include <bits/stdc++.h> using namespace std; #define N 5000006 #define mod ...

  4. Tomcat启动问题:严重[main] org.apache.catalina.core.AprLifecycleListener.init An incompatible version...

    今天观察tomcat启动日志,有一些以前没注意到的信息: 严重 [main] org.apache.catalina.core.AprLifecycleListener.init An incompa ...

  5. 【JZOJ6218】【20190615】卖弱

    题目 题解 我写的另一种方法,复杂度是\(O(Tm+nm)\)的,这是huangzhaojun写的题解... #include<cstring> #include<cstdio> ...

  6. 【大数据应用技术】作业九|安装关系型数据库MySQL 安装大数据处理框架Hadoop

    本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3161 1.安装MySql 按ctrl+alt+t打开终端窗口,安 ...

  7. 第07组 Beta冲刺(1/5)

    队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:代码编辑器 展示GitHub当日代码/文档签入记录:(组内共用,已询问过助教小姐姐) ...

  8. Netty 多客户端连接与通信

    实现场景: 聊天 服务端,客户端A,客户端B,客户端C.当客户端发送消息给服务端后,服务端在将这条消息广播个所有客户端户端A,客户端B,客户端C. 需求1: 客户端上线后,会通知所有客户端上线. 如客 ...

  9. Python多进程和多线程是鸡肋嘛?【转】

    GIL是什么 Python的代码执行由 Python虚拟机(也叫解释器主循环,CPython版本)来控制,Python在设计之初就考虑到在解释器的主循环中,同时只有一个线程在运行.即每个CPU在任意时 ...

  10. HTTP、MQTT、Websocket、WebService区别

    相同点: HTTP.MQTT.Websocket均为OSI 7层模型的[应用层协议]注意. WebService并非通信协议,而是一种远程接口调用(RPC)的框架技术. 不同点: MQTT MQTT协 ...