您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

php二维数组的合并2种方法_PHP教程

2024/4/17 19:38:23发布8次查看
昨天还写了一篇关于数组合并的技术文章,那里我介绍的是一维数组合并,这里介绍一下php二维数组的合并方法,希望对各位同学会有所帮助哦。
例1
自定义方法合并数组
先看一个二维数组:
 代码如下 复制代码
array (
                              [a] => store_name
                              [b] => 商店一
                             )
          [1] => array (
                              [a] => store_owner
                              [b] => 小风
                              )
          [2] => array (
                              [a] => store_name
                              [b] => 商店二
                              )
          [3] => array (
                               [a] => store_owner
                               [b] => 小磊
                               )
?>
大家会发现里面有两个 store_name 和 store_owner ,所以我想让他们合并成下面这样
array
         (
           [a] => 商店一
           [b] => 小风
          )
      [1] => array
         (
           [a] => 商店二
           [b] => 小磊
          )
?>
合并方法如下:
 代码如下 复制代码
$showinfo[$i]['value'],
                          'owner'=>$showinfo[$j]['value'],
                          );
            $i = $j;  //  这里的作用是 相当于 $i 取得是 键值为 偶数的值
        }
?>
这样就可以得到上面的结果了!
为了让大家看的更清楚写 我把数据库表结构写出来 主要字段如下:
key value
store_name 网店一
store_owner 小风
store_name 网店二
store_owner 小磊
通过上面 的方法做过后 前台页面就可以以一排的方式显示了,如下
name owner
网店一 小风
网店二 小磊
例3
 代码如下 复制代码
array(
    '1@01,02',
    '2@01,02',
    '4@all',
    '3@01',
    '5@01,02,04',
    ),
    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,',
  * )
 */
?>
http://www.bkjia.com/phpjc/632666.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/632666.htmltecharticle昨天还写了一篇关于数组合并的技术文章,那里我介绍的是一维数组合并,这里介绍一下php二维数组的合并方法,希望对各位同学会有所帮...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录