首頁 >後端開發 >php教程 >php實作陣列縱向轉橫向並過濾重複值的方法圖文詳解

php實作陣列縱向轉橫向並過濾重複值的方法圖文詳解

墨辰丷
墨辰丷原創
2018-05-22 09:51:141354瀏覽

這篇文章主要介紹了php實現數組縱向轉橫向並過濾重複值的方法,結合具體實例形式對比分析了php針對數組遍歷、轉換與去重相關操作技巧,需要的朋友可以參考下

具體如下:

一、問題

#有陣列:


##

array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);


要求轉換成如下結果(陣列縱向轉橫向並過濾重複值):


array(
  0=>array(5=>'黑xx', 8=>'灰'),
  1=>array(42=>'XXL', 40=>'XL'),
);


二、解決方法:


##

$a = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
foreach($a as $r) {
 $b[key($r)] = current($r);
 next($r);
 $c[key($r)] = current($r);
}
$b = array($b, $c);
print_r($b);


方法2:


#

$arr = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
$result = array();
foreach($arr as $a){
  $keys = array_keys($a);
  $vals = array_values($a);
  $result[0][$keys[0]] = $vals[0];
  $result[1][$keys[1]] = $vals[1];
}
print_r($result);


#最簡單的寫法:


$a = array(
  6=>array(5=>'黑xx', 42=>'XXL'),
  7=>array(5=>'黑xx', 40=>'XL'),
  8=>array(8=>'灰',  40=>'XL'),
);
foreach($a as $r) {
 $i = 0;
 while(list($k, $v) = each($r)) $b[$i++][$k] = $v;
}
print_r($b);


#最終運行結果皆為:

##

Array
(
  [0] => Array
    (
      [5] => 黑xx
      [8] => 灰
    )
  [1] => Array
    (
      [42] => XXL
      [40] => XL
    )
)



相關推薦:

#PHP實踐教學之

過濾、驗證、轉義與密碼的方法

關於PHP

過濾器(Filter)的相關了解
##php安全

過濾

 


#

以上是php實作陣列縱向轉橫向並過濾重複值的方法圖文詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn