首页 > 其他分享 >数组处理

数组处理

时间:2023-01-06 17:22:23浏览次数:33  
标签:arr name 处理 arr2 数组 array result

一、PHP获取二维数组中某一列的值集合  

PHP还是比较常用的,于是我研究了一下PHP二维数组。在处理php数组的时候,有一种需求特别的频繁,如下二维数组:

$arr = array(
  1=>array(
    'id' => 5,
    'name' => '张三'
  ),
  2=>array(
    'id' => 6,
    'name' => '李四'
  )
);

目的就是要取到key为name的集合,得到这个结果:

$arr2 = array(
  0=>'张三',
  1=>'李四'
);

这里有几种方法:

1:最简单的,foreach遍历数组:

foreach ($arr as $key => $value) {
    $arr2[] = $value['name'];
}

2:代码量稍微少一点的代码,使用了 array_map 这个php方法:

$arr2 = array_map('array_shift',$arr);

意为把$arr数组的每一项值的开头的值移出,并返回被移出的每一项值中被移出的值,注意此时新数组$arr2的键仍是原数组$arr的键

2.1:在方法2的基础上,可以稍微开一下脑洞,如果需要获取的是二维数组的每一项的开头列或结尾列,也可以这样做:

$arr2 = array_map('reset',$arr);
$arr2 = array_map('end',$arr);

哈哈,也是很方便的

3:还可以使用 array_reduc e方法,不过代码略多,不过这个方法的想象空间(针对别的数组取值操作)还是蛮大的:

$arr2 = array_reduce($arr, create_function('$result, $v', '$result[] = $v["name"];return $result;'));

array_reduce方法用回调函数迭代地将对数组的值进行操作,而create_function用于一个匿名方法做回调用,这个匿名方法的参数$result为上一次迭代产生的值,$v是当前的值,内部实现既为获取到数组$arr每一项的”name”的值并push到新$result数组;

4:最后这个终极方法实在是太爽了,一个方法就搞定,而且非常灵活:

$arr2 = array_column($arr, 'name');

第二个参数为想要获取的那一列的键名,是不是很方便呢,不过这个方法有个限制,就是php版本必须 >= 5.5.0,在陈旧项目中使用这个方法还是得斟酌一下哈

 

标签:arr,name,处理,arr2,数组,array,result
From: https://www.cnblogs.com/mldyfre/p/17031082.html

相关文章

  • 医学图像处理(五):图像的origin
    img=sitk.ReadImage(img_path)origin=img.GetOrigin()图像的origin可以用这行代码读取它的意义是原始图像中心点在相机坐标系的位置如图所示,原点出发的是相机坐......
  • bash中处理Shell脚本中带有空格的变量
    在批量处理文件时候使用下面的脚本发现含有空格的文件名并不能被正确处理:#$1:遍历的文件夹rootDir=$1cd$rootDirallAudioFile=$(find$1-name"*\.mp3")foroneAu......
  • LeetCode 删除数组中重复项 26 80
    26(80)给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次(使得出现次数超过两次的元素只出现两次),返回删除后数组的新长度。元素的相对顺......
  • MySQL4 - 数据处理函数(单行)
    数据处理函数又被称为单行处理函数特点:一个输入对应一个输出,相应的多行处理函数:多个输入(处理多条记录)一个输出常见函数:lower转换为小写upper转换为大写SELECTL......
  • 学习笔记——书城项目第六阶段之处理请求响应乱码问题
    2023-01-06一、处理请求响应乱码问题通过过滤器处理乱码问题 请求乱码和响应乱码(1)创建一个"webApplication"项目,命名为“bookstore06”,将"bookstore05"的代码迁移过......
  • 数字图像处理实验课
    数字图像处理实验课实验02图像采样与量化图像采样image1=imread('face.jpg');image2=image1(1:2:end,1:2:end);%每2位采1位image3=image1(1:4:end,1:4:end);%......
  • js 数组的splice
    splice():删除、插入和替换1、删除:指定2个参数:要删除的第一项的位置和要删除的项数。书写格式:arr.splice(0,2)2、插入:可以向指定位置插入任意数量的项,只需提供3......
  • 第3章:数组
    1、数组的概述数组(Array):是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组的相关概念:    数组名:数组的名称......
  • MySQL表不能修改、删除等操作,卡死、锁死情况的处理办法。
    MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效。解决办法:/......
  • 使用ExcelJS处理Excel
    官方中文文档在浏览器环境下,用Excel.js读取excel文件使用ExcelJS的原因因为SheetJS读取样式的那一部分是收费的(具体原因是因为有人花钱找他们开发的,再免费对花钱的人......