php二维数组对某一列进行数据组装

demo示例:

1 $data = array(
2     ‘0‘ => array(‘id‘ => 10, ‘username‘ => ‘陈一‘),
3     ‘1‘ => array(‘id‘ => 11, ‘username‘ => ‘洪二‘),
4     ‘2‘ => array(‘id‘ => 12, ‘username‘ => ‘张三‘),
5     ‘3‘ => array(‘id‘ => 13, ‘username‘ => ‘李四‘)
6 );

方法一:  foreach循环方法实现

1 foreach ($data as $key=>$value) {
2     $idData[] = $value[‘id‘];
3     $usernameData[] = $value[‘username‘];
4 }
5
6 var_dump($idData);//array(4) { [0]=> int(10) [1]=> int(11) [2]=> int(12) [3]=> int(13) }
7 var_dump($usernameData);//array(4) { [0]=> string(6) "陈一" [1]=> string(6) "洪二" [2]=> string(6) "张三" [3]=> string(6) "李四" }

方法二:  array_map函数方法  函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组.

1 $callBackData = array_map(function($value){
2     return $usernameData[] = $value[‘username‘];
3 }, $data);
4 var_dump($callBackData);//array(4) { [0]=> string(6) "陈一" [1]=> string(6) "洪二" [2]=> string(6) "张三" [3]=> string(6) "李四" }

方法三: array_column函数方法  相对实现简单,但是要求PHP版本必须是5.5.0及以上版本

1 $usernameData = array_column($data, ‘username‘);
2 var_dump($usernameData);//array(4) { [0]=> string(6) "陈一" [1]=> string(6) "洪二" [2]=> string(6) "张三" [3]=> string(6) "李四" }

方法四: array_walk函数方法  函数对数组中的每个元素应用用户自定义函数.在函数中,数组的键名和键值是参数.

1 $usernameData = array();
2 array_walk($data, function($value, $key) use (&$usernameData){
3     $usernameData[] = $value[‘username‘];
4 });
5 var_dump($usernameData);//array(4) { [0]=> string(6) "陈一" [1]=> string(6) "洪二" [2]=> string(6) "张三" [3]=> string(6) "李四" }

原文地址:https://www.cnblogs.com/cxx8181602/p/9835944.html

时间: 2024-10-19 17:52:45

php二维数组对某一列进行数据组装的相关文章

php二维数组按照某一列排序的方法

/**  * 二维数组排序方法,数字的倒叙排列  * @param arr  * @param field  */ function sortArrByField(&$array, $field, $desc = false){ $fieldArr = array(); foreach ($array as $k => $v) { $fieldArr[$k] = $v[$field]; } $sort = $desc == false ? SORT_ASC : SORT_DESC; arra

JavaSE7基础 定义二维数组 不固定的列数 固定的行数

版本参数:jdk-7u72-windows-i586注意事项:博文内容仅供参考,不可用于其他用途. 代码 class Demo{ public static void main(String[] args){ //在初始化的时候,只是确定有多少行 int[][] myArr1=new int[3][];//三行不确定列 myArr1[0]=new int[]{1,2,3,4,5}; myArr1[1]=new int[]{1,2,3}; myArr1[2]=new int[]{1,2,3,6,7

模拟水题,查看二维数组是否有一列都为1(POJ2864)

题目链接:http://poj.org/problem?id=2864 题意:参照题目 哈哈哈,这个题discuss有翻译哦.水到我不想交了. #include <cstdio> #include <cstdlib> #include <cstring> int arr[510][110]; int main(void) { int r, c; int i, j; int flag; while(scanf("%d%d", &c, &

二维数组的列排序

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列.如果第i列到最后一列都相同,则按原序排列. 实现以下接口: 输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组. 调用者会保证: 比如输入数组为: 1,2,3 2,3,4 2,3,1 1,3,1 按第二列排序: 输出: 1,2,3 2,3,1 1,3,1 2,3,4 分析:从最后一列开始使用稳定的排序

PHP方便快捷的将二维数组中元素的某一列值抽离出来作为此二维数组内元素的key

得益于PHP的强大的内置数组函数array_column();array_combine(); 举个小栗子: <?php // 先查询出用户的基本信息 $userArray = [['id' => 'zs', 'name' => '张三'], ['id' => 'ls', 'name' => '李四'], ['id' => 'wr', 'name' => '王二']]; // 将二维数组内某具体列的值组成一个新用户数组 $userArrayNew = array_

二维数组元素排序

<script type="text/javascript">//--------------------------1数值排序-------------------------var arr1=[[22,33,44],[1,0,6,2],[33,10],[10,5]];arr1.sort(function(x,y){ return x[1] -y[1];//按照二维数组arr1中每个数组元素(数组)的第二个元素升序排列 });console.log(arr1); //--

从txt文件中读取数据放在二维数组中

1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.0300000.140000 2.7400008.920000 7.2900002.580000 7.4300001.850000 6.1300001.350000 4.280000 ... ... 2.在我的test.cpp中添加头文件,即可使用FILE类来读取txt文件中的数据 #include <stdi

二维数组的动态分配(new)、初始化(memset)和撤销(delete)

来自http://blog.csdn.net/maverick1990/article/details/22829135 一维数组 动态分配,int *array = new int[10] 初始化,memset(array,0,sizeof(array)); 撤销,delete[] array 二维数组m行n列 int **d; d = new int *[10]; for(int i =0;i<10;i++){ d[i] = new int[5] } 先分配一个10单元的数组指针的指针的首地

通用的二维数组

1.问题描述 写一个(通用)二维数组的工具,可以按照数组的下标访问数组元素: 算法思路:实际上我们是申请一个一维数组,通过定义一些函数,让使用者"感觉"其使用的是二维数组甚至是多维数组: 其数据结构的控制头为: typedef struct MATRIX{     USER_TYPE *data;     int maxRow;     int maxCol; }MATRIX; 2.通用二维数组的实现 (1).commonMatrix.h #ifndef _COMMON_MATRIX_