zoukankan      html  css  js  c++  java
  • 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) "李四" }

    方法五: array_reduce函数方法  函数向用户自定义函数发送数组中的值,并处理最终返回值.

    array_reduce(array,myfunction,initial)  注意: PHP 5.3.0 以上,initial 参数接受多类型(混合的);  PHP 5.3.0 之前的版本只支持整数.

    1 $usernameData = array_reduce($data,function(&$usernameData,$v){
    2     $usernameData[] = $v['username'];
    3     return $usernameData;
    4 });
    5 var_dump($usernameData);//array(4) { [0]=> string(6) "陈一" [1]=> string(6) "洪二" [2]=> string(6) "张三" [3]=> string(6) "李四" }
  • 相关阅读:
    idea控制台乱码问题解决
    部署springboot项目到云服务器的两种方式(jar+war)
    case...when...then....(else...)....end的使用小案例
    多线程学习(二)
    多线程学习(一)
    Swagger学习笔记
    Docker进阶篇
    Docker入门基础篇
    Markdown语法学习(推荐使用Typora编辑器)
    git(六)——IDEA中使用git
  • 原文地址:https://www.cnblogs.com/cxx8181602/p/9835944.html
Copyright © 2011-2022 走看看