融合两种PHP中进行2D数组组合的方法
发布时间:2023-10-27 11:01:53 所属栏目:PHP教程 来源:互联网
导读: 例一
自定义方法合并数组
先看一个二维数组:
代码如下
1
Array (
2 [0] => Array (
3
自定义方法合并数组
先看一个二维数组:
代码如下
1
Array (
2 [0] => Array (
3
例一 自定义方法合并数组 先看一个二维数组: 代码如下 1 Array ( 2 [0] => Array ( 3 [A] => store_name 4 [B] => 商店一 5 ) 6 [1] => Array ( 7 [A] => store_owner 8 [B] => 小风 9 ) 10 [2] => Array ( 11 [A] => store_name 12 [B] => 商店二 13 ) 14 [3] => Array ( 15 [A] => store_owner 16 [B] => 小磊 17 ) 18 ?> 19 大家会发现里面有两个 store_name 和 store_owner ,所以我想让他们合并成下面这样 20 21 Array ( 22 [0] => Array 23 ( 24 [A] => 商店一 25 [B] => 小风 26 ) 27 [1] => Array 28 ( 29 [A] => 商店二 30 [B] => 小磊 31 ) 32 ?> 合并方法如下: 代码如下 1 $stores = array(); //定义一个空数组 $store_count=count($showinfo); //统计显示的次数,这里的$showinfo是我获取数据库内容时的一个变量,然后打印出来就是上面刚开始的样子 for($i=0;$i<$store_count;$i++) { $j=$i+1; //将 $i 加 1 跳过 一级 相当于 $j 取得是 键值为 奇数的值 $stores[]=array( 'name' =>$showinfo[$i]['value'], 'owner'=>$showinfo[$j]['value'], ); $i = $j; // 这里的作用是 相当于 $i 取得是 键值为 偶数的值 } 2 ?> 这样就可以得到上面的结果了! 为了让大家看的更清楚写 我把数据库表结构写出来 主要字段如下: key value store_name 网店一 store_owner 小风 store_name 网店二 store_owner 小磊 通过上面 的方法做过后 前台页面就可以以一排的方式显示了,如下 name owner 网店一 小风 网店二 小磊 例3 代码如下 1 $arr = array ( 0 => array( '1@01,02', '2@01,02', '4@ALL', '3@01', '5@01,02,04', ), 2 1 => array( '1@01,02,03', '2@01,02,04', '3@ALL', '4@01,02', '111@01,05', '5@03', ), 2 => array( '1@01,02,03', '2@02,03,05', '3@ALL', '4@01,02,03', '111@01,05', '5@03', ), ); $result = array(); foreach($arr as $items){ if(is_array($items)){ foreach($items as $item){ $item = explode('@', $item); if(count($item) != 2){ continue ; } $result[$item[0]] .= $item[1].','; } } } function reJoin(&$item,$key,$seq){ $list = array_unique(explode($seq,$item)); if (in_array('ALL', $list)){ $item = $key.'@ALL'; }else{ $item = $key.'@'.join($seq,$list); } } array_walk($result, 'reJoin',','); sort($result); var_export($result); /** * array ( * 0 => '111@01,05,', * 1 => '1@01,02,03,', * 2 => '2@01,02,04,03,05,', * 3 => '3@ALL', * 4 => '4@ALL', * 5 => '5@01,02,04,03,', * ) */ ?> (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐