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


Posted in PHP onDecember 04, 2019

本文实例总结了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'),
);
/**
* @param array $array 数组
* @param string $k 要获取值的key
* @param array $rm 要去除的数据
* */
function array_get_v($array, $k, $rm)
{ 
 if (!trim($k)) return false;
 preg_match_all("/\"$k\":(\d+)/", json_encode($array), $res);
 $res = array_diff($res[1],$rm);
 return implode(',',$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'];
});
echo implode(',', $ids);

运行结果:

100,101,102,103,104

例2:

<?php
function process($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);
echo implode(',', $aUser);

运行结果:

100,101,102,103,104

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

PHP 相关文章推荐
PHP中的正规表达式(二)
Oct 09 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
php生成静态页面的简单示例
Apr 17 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 PHP
PHP实现发送微博消息功能完整示例
Dec 04 #PHP
PHP连续签到功能实现方法详解
Dec 04 #PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 #PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 #PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 #PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 #PHP
在phpstudy集成环境下的nginx服务器下配置url重写
Dec 02 #PHP
You might like
组合算法的PHP解答方法
2012/02/04 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
浅谈python对象数据的读写权限
2016/09/12 Python
Python实现KNN邻近算法
2021/01/28 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Python阶乘求和的代码详解
2020/02/14 Python
python操作toml文件的示例代码
2020/11/27 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
十岁生日父母答谢词
2014/01/18 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
学雷锋月活动总结
2014/04/25 职场文书
文明生主要事迹
2014/05/25 职场文书
就业意向协议书
2015/01/29 职场文书
2015公司年度工作总结
2015/05/14 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python