国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php二維數組的合并2種方法

2024-09-04 11:45:58
字體:
來源:轉載
供稿:網友

昨天還寫了一篇關于數組合并的技術文章,那里我介紹的是一維數組合并,這里介紹一下php二維數組的合并方法,希望對各位同學會有所幫助哦。

例1:自定義方法合并數組,先看一個二維數組,代碼如下:

  1. <?php 
  2. Array ( 
  3.           [0] => Array ( 
  4.                               [A] => store_name 
  5.                               [B] => 商店一 
  6.                              ) 
  7.           [1] => Array ( 
  8.                               [A] => store_owner 
  9.                               [B] => 小風 
  10.                               ) 
  11.           [2] => Array ( 
  12.                               [A] => store_name 
  13.                               [B] => 商店二 
  14.                               ) 
  15.           [3] => Array ( 
  16.                                [A] => store_owner 
  17.                                [B] => 小磊 
  18.                                ) 
  19. ?> 

大家會發現里面有兩個 store_name 和 store_owner,所以我想讓他們合并成下面這樣

  1. <?php  
  2. Array ( 
  3.      [0] => Array 
  4.          ( 
  5.            [A] => 商店一 
  6.            [B] => 小風 
  7.           ) 
  8.       [1] => Array 
  9.          ( 
  10.            [A] => 商店二 
  11.            [B] => 小磊 
  12.           ) 
  13. ?> 

合并方法如下,代碼如下:

  1. <?php 
  2. $stores = array(); //定義一個空數組 
  3.         $store_count=count($showinfo);  //統計顯示的次數,這里的$showinfo是我獲取數據庫內容時的一個變量,然后打印出來就是上面剛開始的樣子 
  4.         for($i=0;$i<$store_count;$i++) 
  5.         { 
  6.             $j=$i+1;     //將 $i 加 1 跳過 一級  相當于 $j 取得是 鍵值為 奇數的值 
  7.             $stores[]=array
  8.                           'name' =>$showinfo[$i]['value'], 
  9.                           'owner'=>$showinfo[$j]['value'], 
  10.                           ); 
  11.             $i = $j;  //  這里的作用是 相當于 $i 取得是 鍵值為 偶數的值 
  12.         } 
  13. ?> 

這樣就可以得到上面的結果了,為了讓大家看的更清楚些,我把數據庫表結構寫出來,主要字段如下:

  1. key value 
  2. store_name 網店一 
  3. store_owner 小風 
  4. store_name 網店二 
  5. store_owner 小磊 

通過上面的方法做過后,前臺頁面就可以以一排的方式顯示了,如下

  1. name owner 
  2. 網店一 小風 
  3. 網店二 小磊 

例2,代碼如下:

  1. <?php 
  2. $arr = array 
  3.     0 => array
  4.     '1@01,02'
  5.     '2@01,02'
  6.     '4@ALL'
  7.     '3@01'
  8.     '5@01,02,04'
  9.     ), 
  10.     1 => array
  11.     '1@01,02,03'
  12.     '2@01,02,04'
  13.     '3@ALL'
  14.     '4@01,02'
  15.     '111@01,05'
  16.     '5@03'
  17.     ), 
  18.     2 => array
  19.     '1@01,02,03'
  20.     '2@02,03,05'
  21.     '3@ALL'
  22.     '4@01,02,03'
  23.     '111@01,05'
  24.     '5@03'
  25.     ), 
  26. ); 
  27. $result = array(); 
  28. foreach($arr as $items){ 
  29.     if(is_array($items)){ 
  30.         foreach($items as $item){ 
  31.             $item = explode('@'$item); 
  32.             if(count($item) != 2){ 
  33.                 continue ; 
  34.             } 
  35.             $result[$item[0]] .= $item[1].','
  36.         } 
  37.     } 
  38. function reJoin(&$item,$key,$seq){ 
  39.     $list = array_unique(explode($seq,$item)); 
  40.     if (in_array('ALL'$list)){ 
  41.         $item = $key.'@ALL'
  42.     }else
  43.         $item = $key.'@'.join($seq,$list); 
  44.     } 
  45. array_walk($result'reJoin',','); 
  46. sort($result); 
  47. var_export($result); 
  48. /** 
  49.  * array ( 
  50.   * 0 => '111@01,05,', 
  51.   * 1 => '1@01,02,03,', 
  52.   * 2 => '2@01,02,04,03,05,', 
  53.   * 3 => '3@ALL', 
  54.   * 4 => '4@ALL', 
  55.   * 5 => '5@01,02,04,03,', 
  56.   * ) 
  57.  */ 
  58. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉安市| 北辰区| 霍林郭勒市| 镇平县| 抚州市| 闵行区| 兰州市| 武鸣县| 广饶县| 深州市| 南丰县| 临朐县| 西充县| 兴仁县| 离岛区| 西盟| 晋中市| 万全县| 公安县| 永州市| 高台县| 武城县| 遵化市| 南雄市| 高雄市| 淮南市| 蒲江县| 措勤县| 密山市| 岗巴县| 阳信县| 舞钢市| 宁乡县| 汕头市| 宿迁市| 旬阳县| 太仆寺旗| 奇台县| 来凤县| 佛坪县| 娄烦县|