php 组装二维数组,php实现快速对二维数组某一列进行组装的方法小结

本文介绍了两种PHP方法来快速从二维数组中获取特定列(如'id'),并能进行条件过滤(如排除特定id)。一种是通过正则匹配和json_encode结合,另一种是利用array_walk和array_map函数。这些方法避免了传统的循环处理,提高了效率。
摘要由CSDN通过智能技术生成

本文实例总结了php实现快速对二维数组某一列进行组装的方法。分享给大家供大家参考,具体如下:

问题:

比如我二维数组是这样的:

$user=array(

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

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

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

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

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

)

如何快速的获取所有id组成的ids字符串,比如$ids='100,101,102,103,104';再者如果我有条件的组装,比如id!=103等这样的,除了循环处理外有没有比较方便快速的方法?

解决方法:

$user=array(

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

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

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

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

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

);

/**

*@paramarray$array数组

*@paramstring$k要获取值的key

*@paramarray$rm要去除的数据

**/

functionarray_get_v($array,$k,$rm)

{

if(!trim($k))returnfalse;

preg_match_all("/\"$k\":(\d+)/",json_encode($array),$res);

$res=array_diff($res[1],$rm);

returnimplode(',',$res);

}

print_r(array_get_v($user,'id',array(101)));

运行结果:

100,102,103,104

补充方法:

例1:

$user=array(

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

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

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

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

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

);

array_walk($user,function($v,$k)use(&$ids){

$ids[$k]=$v['id'];

});

echoimplode(',',$ids);

运行结果:

100,101,102,103,104

例2:

functionprocess($v){

//如果要加限制条件,在这里加入即可

if(isset($v['id']))

return$v['id'];

}

$user=array(

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

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

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

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

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

);

$aUser=array_map("process",$user);

echoimplode(',',$aUser);

运行结果:

100,101,102,103,104

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:PHP数组基本用法与知识点总结PHP数组操作详解【遍历、指针、函数等】php数组指针函数功能及用法示例PHP查找一列有序数组是否包含某值的方法php数组函数array_push()、array_pop()及array_shift()简单用法示例PHP字符串与数组处理函数用法小结PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结PHP实现提取多维数组指定一列的方法总结PHP数组对象与Json转换操作实例分析如何在PHP中使用数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值