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 相关文章推荐
source.php查看源文件
Dec 09 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
Yii使用CLinkPager分页实例详解
Jul 23 PHP
php广告加载类用法实例
Sep 23 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
PHP递归算法的简单实例
Feb 28 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
Yii框架where查询用法实例分析
Oct 22 PHP
php的无刷新操作实现方法分析
Feb 28 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实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
YII框架http缓存操作示例
2019/04/29 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
react-router中的属性详解
2017/06/01 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python验证码识别处理实例
2015/12/28 Python
Python变量和字符串详解
2017/04/29 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
Python3中列表list合并的四种方法
2019/04/19 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
HTML5实现桌面通知 提示功能
2017/10/11 HTML / CSS
.net开发工程师面试题
2014/02/25 面试题
初中学校军训方案
2014/05/09 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
银行竞聘报告范文
2014/11/06 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
法院个人总结
2015/03/03 职场文书
暑期家教宣传单
2015/07/14 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS