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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
php 数组的一个悲剧?
May 11 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
php通过session防url攻击方法
Dec 10 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
laravel手动创建数组分页的实现代码
Jun 07 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
php如何把表单内容提交到数据库
Jul 08 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
基于mysql的论坛(6)
2006/10/09 PHP
php单件模式结合命令链模式使用说明
2008/09/07 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP会话处理的10个函数
2015/08/11 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
js解决movebox移动问题
2016/03/29 Javascript
vue组件实例解析
2017/01/10 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
GWT的应用有哪两种部署模式
2012/12/21 面试题
劳动模范事迹材料
2014/01/19 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
英语求职信范文
2014/05/23 职场文书
摄影展策划方案
2014/06/02 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
群众路线领导对照材料
2014/08/23 职场文书
党员个人党性分析材料
2014/12/18 职场文书
浅谈python中的多态
2021/06/15 Python