当前位置:首页 > 后端

php array_column函数封装

Z先生6年前 (2020-10-08)后端991

array_column函数只支持php5.5.0以上版本,所以这里要封装下,这样可以兼容用法

if (!function_exists("array_column")) {
	function array_column($array, $val_col, $key_col) {
		if($key_col==null) {
			return array_map(function ($element) use ($val_col) {
				return $val_col==null?$element:$element[$val_col];
			}
			, $array);
		} else {
			$_array=array();
			foreach ($array as $_key=>$_val) {
				$_array[$_val[$key_col]]=$val_col==null?$_val:$_val[$val_col];
			}
			return $_array;
		}
	}
}

注意事项:

$arr = array(
   array(
       'id' => 1,
       'first_name' => 'John',
       'last_name' => 'Does',
   ),
   array(
       'id' => 2,
       'first_name' => 'Sally',
       'last_name' => 'Smith',
   ),
   array(
       'id' => 3,
       'first_name' => 'Jane',
       'last_name' => 'Jones',
   ),
   array(
       'id' => 4,
       'first_name' => 'Peter',
       'last_name' => 'Doe',
   )
);

print_r(array_column($arr,'first_name'));
//运行结果:
/*
Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)
*/
 
print_r(array_column($arr,'first_name','last_name'));
//运行结果:
/*
Array
(
    [Does] => John
    [Smith] => Sally
    [Jones] => Jane
    [Doe] => Peter
)
*/
  
print_r(array_column($arr, null, 'last_name'));
//运行结果:
/*
Array
(
    [Does] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Does
        )

    [Smith] => Array
        (
            [id] => 2
            [first_name] => Sally
            [last_name] => Smith
        )

    [Jones] => Array
        (
            [id] => 3
            [first_name] => Jane
            [last_name] => Jones
        )

    [Doe] => Array
        (
            [id] => 4
            [first_name] => Peter
            [last_name] => Doe
        )

)
*/


分享给朋友:

相关文章

关于微信表情(emoji表情)入Mysql的解决方案(PHP版)

emoji是4个字节存储,而utf8_general_ci最大支持3字节,解决方案有两个:1、mysql库的由utf8改成utf8mb4;2、使用出入库编码转换,比如:base64编码、urlenco…

Ajax分页,php+Mysql Limit写法

$pagesize = 20; $page--; $start = $page <= 0 ? 0 :…

【转】rtsp视频流实现浏览器h5播放

【转】rtsp视频流实现浏览器h5播放

方案思路:获取摄像头数据流 --> FFmpeg转码 --> Node.js(搭建webSocket服务器) --> 在服务器上运行jsmpeg程序操作步骤首先查看是否能够正常地获取…

PHP将图片自动缩放成指定大小:autoCropImage,含nginx伪静态

autoCropImage自己一直在用,并且加入了webp格式转换具体说明和介绍如下:autoCropImage - 图片自动缩放程序将图片自动缩放成指定大小,减少图片体积,从而加快下载速度,降低下载…

困扰了很久的PHP跨域问题

其实这个问题一直是不存在的,只是自己因为各种配置吧,导致了这个问题一直没有解决。现在就解决思路提供如下: 1、php端,主要是Access-Control-Allow-Headers选项……

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。