| 為大家介紹幾個php輸出數組中的重名元素的方法,有需要的朋友,可以參考下。 方法1、直接用php的內建函數array_intersect()array array_intersect ( array $array1 , array $array2 [, array $ ... ] ) array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意鍵名保留不變。 例子: "green", "red", "blue"); $array2 = array("b" => "green", "yellow", "red"); $result = array_intersect($array1, $array2); ?>輸出結果:Array( [a] => green [0] => red) 方法2、自己實現的演算法 "; $k=var_dump(array_unique($r)); return $k; } $a = array("red", "green", "pink", "red", "yellow","pink", "red"); $r=my_array_same($a); var_dump(array_unique($r)); ?>輸出結果: array(2) { [3]=> string(3) "red" [5]=> string(4) "pink" } 3、自訂遞迴函式 "; print_r(my_array_intersect($array1, $array2)); echo ""; ?> 說明:一維數組的話,第三種演算法比第一種快點。上述演算法都適用於一維的數組,那麼多維陣列怎麼尋找相同的元素呢?這裡提供一種思路:可以把多維的數組轉化成一維的數組,然後再利用上述演算法輸出。例子: $v){ if (!is_array($v)) { $str.=$v." "; } else{ $str.=toarr($v); } } return $str; }/*遞迴函式結束*/ ?>以上代碼實現多維陣列轉化成字串,然後使用expode函數轉化成一維數組即可。試想一下,資料庫返回某一欄位重名的值也是這個道理,這個通過sql語句也是可以實現的。 編程就是這樣,條條大道通羅馬,舉一返三,觸類而旁通,多學多練多實踐,功到自然成啊。程式員之家,祝大家學習進步。 |