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中文字符截取防乱码
Mar 28 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
php获取当月最后一天函数分享
Feb 02 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 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里得到前天和昨天的日期的代码
2007/08/16 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python连接mysql实例分享
2016/10/09 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
python实现微信自动回复机器人功能
2019/07/11 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
Django配置跨域并开发测试接口
2020/11/04 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
如何提高MySql的安全性
2014/06/19 面试题
护士自荐信怎么写
2013/10/18 职场文书
十月份红领巾广播稿
2014/01/22 职场文书
应急管理工作总结2015
2015/05/04 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js