• 全都有综合资源网

    分享赚钱

    一个专业的免费资源网

    每天更新100+优质资源

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方微信群

PHP 提取二维数组某一列的值并将其转换为一维数组的几种方法 ... ...

技术文章 每日更新
2024-6-8 09:49 18人浏览 0人回复
原作者: 全都有综合资源网 来自: 全都有综合资源网 收藏 分享 邀请
摘要

PHP中对二维数组某一列的提取是非常常见和经常使用的特性,这就是 PHP 在5.5.0版之后添加特殊函数 array ()的原因。当然,如果您的 PHP 版本低于5.5.0,那么必须使用其他方法。例如,对于以下这个二维数组:$wosn_ne ...

 PHP中对二维数组某一列的提取是非经常见和经常利用的特征,这就是 PHP 在5.5.0版以后增加特别函数 array ()的缘由。
固然,假如您的 PHP 版本低于5.5.0,那末必须利用其他方式。

PHP 提取二维数组某一列的值并将其转换为一维数组的几种方式 ... ...5403 作者:全都有综合资本网 来历:全都有综合资本网 公布时候:2024-6-8 09:49

例如,对于以下这个二维数组:
  1. $wosn_net?=?array(

  2. ????'0'?=>?array('id'?=>?100,?'username'?=>?'a1'),

  3. ????'1'?=>?array('id'?=>?101,?'username'?=>?'a2'),

  4. ????'2'?=>?array('id'?=>?102,?'username'?=>?'a3'),

  5. ????'3'?=>?array('id'?=>?103,?'username'?=>?'a4'),

  6. ????'4'?=>?array('id'?=>?104,?'username'?=>?'a5'),

  7. );

我们要提取其中的 usename 列,酿成以下的一维数组:

  1. $username?=?array('a1',?'a2',?'a3',?'a4',?'a5');

处置方式首要有以下几种:

1、array_column函数法

array_column 是最简单的方式,可是要求PHP版本必须是5.5.0及以上版本,方式:

  1. $username?=?array_column($wosn_net,?'username');

输出成果:

  1. Array?(?[0]?=>?a1?[1]?=>?a2?[2]?=>?a3?[3]?=>?a4?[4]?=>?a5?)

留意:array_column();可以有第三个参数,它可以作为返回数组的索引/键的列,它可所以该列的整数索引,大概字符串键值。如:

  1. $username?=?array_column($wosn_net,?'username','id');

输出:

  1. Array?(?[100]?=>?a1?[101]?=>?a2?[102]?=>?a3?[103]?=>?a4?[104]?=>?a5?)

留意以上两个输出的id区分;

 

2、array_walk函数法

array_walk()函数利用用户自界说函数对数组中的每个元素做回调解置,实现当前功用的方式:

  1. $username?=?array();

  2. array_walk($wosn_net,?function($value,?$key)?use?(&$username){

  3. ????$username[]?=?$value['username'];

  4. });

注:“function() use (){}”是php闭包的一种写法,详情见:PHP闭包(Closure)function() use(){}的利用方式。

 

3、array_map函数法

array_map()函数和array_walk() 感化类似,将回调函数感化到给定数组的单元上。

  1. $username?=?array();

  2. array_map(function($value)?use?(&$username){

  3. ????$username[]?=?$value['username'];

  4. },?$wosn_net);

 

4、array_reduce函数法

利用array_reduce方式,代码略多,不外这个方式的设想空间(针对此外数组取值操纵)还是蛮大的:

  1. $username?=?array_reduce($wosn_net,?create_function('$result,?$v',?'$result[]?=?$v["username"];return?$result;'));

输出:

  1. Array?(?[0]?=>?a1?[1]?=>?a2?[2]?=>?a3?[3]?=>?a4?[4]?=>?a5?)

array_reduce方式用回调函数迭代地将对数组的值停止操纵,而create_function用于一个匿名方式做回挪用,这个匿名方式的参数$result为上一次迭代发生的值,$v是当前的值,内部实现既为获得到数组$arr每一项的”username”的值并push到新$result数组;

 

5、foreach循环法

foreach循环相对上面的方式效力稍微低一些,但简单轻易了解。

  1. $username?=?array();

  2. foreach?($wosn_net?as?$value)?{

  3. ????$username[]?=?$value['username'];

  4. }

注:本人的写法就是间接 foreach,然后 array_push 一个个的往一个数组变量里塞。这样的写法能够对性能有点影响,由于利用 PHP 原生的函数必定比循环效力高。

 

6、array_map变种

方式以下,意为把$wosn_net数组的每一项值的开首值移出,并获得移除的值作为新数组。留意此时新数组$username的键还是原数组$wosn_net的键,以下。

  1. $username?=?array_map('array_shift',?$wosn_net);

输出以下:

  1. Array?(?[0]?=>?100?[1]?=>?101?[2]?=>?102?[3]?=>?103?[4]?=>?104?)

留意:该功用会获得$wosn_net中的 id 列,而不是 username 列。输出数组的键为$wosn_net数组的键,这里重合了看不出结果。

别的,假如需要获得二维数组每一项的开首列或结尾列,也可以这样做:

  1. $username?=?array_map('reset',?$wosn_net);

  2. $username?=?array_map('end',?$wosn_net);

这三个变种方式感化比力范围,仅在获得第一列或最初一列的时辰有用,在复杂的数组中就难以发挥感化了。

©版权免责声明
1、本站所有资源均来自用户上传及互联网。 如有侵权,请联系站长!
2、分享目的仅供大家学习交流。 下载后必须在24小时内删除!
3、不得用于非法商业目的或违反国家法律。 否则,后果自负!
4、本站提供的源代码、模板、插件等资源不包含技术服务。 敬请谅解!
5.如果出现无法下载、无效或有广告的链接,请联系管理员寻求帮助!
6、本站资源价格仅用于赞助,所收取的费用仅用于维持本站日常运营!
7、如果遇到加密压缩包,请使用WINRAR解压。 如果遇到无法解压的加密压缩包,请联系管理员!
8、由于精力有限,很多源代码无法详细测试(解密),部分源代码无法区分为病毒或误报,所以没有进行修改。 请在使用前进行筛选。

路过

雷人

握手

鲜花

鸡蛋
热门教程
专业的免费源码资源分享平台
每天更新100+资源

招募版主发工资

  • 官方在线客服

    QQ客服:红颜

    点击交谈

    在线客服:良子

    点击交谈

    在线客服:闵月

    点击交谈
  • 上海市虹口区海伦中心B座4F4055-4056室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信公众号

    加入官方微信

一个专业的免费源码资源互联网分享平台 ©2001-2024 https://www.douyouvip.com全都有综合资源网( 豫ICP备2024057239号-1 )赞助会员|网站地图 HTML
全都有综合资源网,WordPress主题PHP源码,PHP网站源码,网站模板,软件源码,网站源码免费下载,免费网站源码,网站源码模板,免费网站源码下载,wp免费源码,wp免费主题下载,PHP企业网站源码,软件源码下载