摘要:轉自實例腳本之家給數組排重與函數的區別它要求是字符串,而這個可以是數組對象要排重的數組是否保留原來的代碼很簡單,卻非常的實用,有需要的小伙伴可以直接拿去用的。
轉自 _php實例_腳本之家
/** * 給數組排重 * 與array_unique函數的區別:它要求val是字符串,而這個可以是數組/對象 * * @param unknown_type $arr 要排重的數組 * @param unknown_type $reserveKey 是否保留原來的Key * @return unknown */ static function m_ArrayUnique($arr, $reserveKey = false) { if (is_array($arr) && !empty($arr)) { foreach ($arr as $key => $value) { $tmpArr[$key] = serialize($value) . ""; } $tmpArr = array_unique($tmpArr); $arr = array(); foreach ($tmpArr as $key => $value) { if ($reserveKey) { $arr[$key] = unserialize($value); } else { $arr[] = unserialize($value); } } } return $arr; } 代碼很簡單,卻非常的實用,有需要的小伙伴可以直接拿去用的。 另附上其他網友的解決辦法 復制代碼 代碼如下: $input = array("a" => "green","", "red","b" => "green", "","blue", "red","c" => "witer","hello","witer"); //$result = array_unique($input); //去除重復元素 $result = a_array_unique($input); //只留下單一元素 foreach($result as $aa) { echo $aa." "; } function multi_unique($array) { foreach ($array as $k=>$na) $new[$k] = serialize($na); $uniq = array_unique($new); foreach($uniq as $k=>$ser) $new1[$k] = unserialize($ser); return ($new1); } function a_array_unique($array)//寫的比較好 { $out = array(); foreach ($array as $key=>$value) { if (!in_array($value, $out)) { $out[$key] = $value; } } return $out; } ?> PHP數組去除重復項 有個內置函數array_unique (),但是php的 array_unique函數只適用于一維數組,對多維數組并不適用,以下提供一個二維數組 的 array_unique函數 復制代碼 代碼如下: function unique_arr($array2D,$stkeep=false,$ndformat=true) { // 判斷是否保留一級數組鍵 (一級數組鍵可以為非數字) if($stkeep) $stArr = array_keys($array2D); // 判斷是否保留二級數組鍵 (所有二級數組鍵必須相同) if($ndformat) $ndArr = array_keys(end($array2D)); //降維,也可以用implode,將一維數組轉換為用逗號連接的字符串 foreach ($array2D as $v){ $v = join(",",$v); $temp[] = $v; } //去掉重復的字符串,也就是重復的一維數組 $temp = array_unique($temp); //再將拆開的數組重新組裝 foreach ($temp as $k => $v) { if($stkeep) $k = $stArr[$k]; if($ndformat) { $tempArr = explode(",",$v); foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval; } else $output[$k] = explode(",",$v); } return $output; } 演示: $array2D = array("first"=>array("title"=>"1111","date"=>"2222"),"second"=>array("title"=>"1111","date"=>"2222"),"third"=>array("title"=>"2222","date"=>"3333")); print_r($array2D);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23206.html
摘要:當我們使用的時候,會導致數據結構不一致。而當方法執行后,數組會去除相應索引下標指定的值,并且不會重置索引。官方文檔介紹如下返回數組中所有的值說明返回數組中所有的值并給其建立數字索引。 背景 在日常工作中,可能會經常遇到一些PHP的代碼場景,需要我們去除數組中的某個項,通常會直接調用unset方法,但是如果用得不妥,會給自己挖坑 1.實操 以下使用具體例子進行證明假設有數組如下值: $...
摘要:最新版本見,點擊查看歷史版本提供一套實用的基礎函數任意格式的日期轉換函數,瀏覽器相關操作函數等全局參數設置默認全局參數基礎函數判斷是否非數值判斷是否為有限數值判斷判斷是否數組判斷是否小數判斷是否整數判斷是否對象判斷是否對象判斷是否對象判斷是 最新版本見 Github,點擊查看歷史版本 XEUtils 提供一套實用的基礎函數、任意格式的日期轉換函數,瀏覽器相關操作函數等... API ...
摘要:為數組示例說明在中將字符串替換為即可。返回其中如果的數組值比的數組值長,將中多出來的數組元素在中匹配的字符串替換為空串,返回。 字符串大小寫轉換 strtoupper(string $str) //把字符串全部轉換成大寫字母 strtolower(string $str) //把字符串全部轉換成小寫字母 ucfirst(string $str) //把字符串的首字母轉換成大寫 ucw...
摘要:階段該階段主要通過循環遍歷數組從而達到去重的目的多次循環去掉重復元素以下所有方法默認都那拿該數組進行測試結果如下圖可見除了沒有去掉,其他效果都還挺好。 數組去重經常被人拿來說事,雖然在工作中不常用,但他能夠很好的考察js基礎知識掌握的深度和廣度,下面從js的不同階段總結一下去重的方法。 ES3階段 該階段主要通過循環遍歷數組從而達到去重的目的 多次循環去掉重復元素 // 以下所有方法默...
摘要:是個巨大的資源庫,很多開發者都知道使用能自動打印一份很好格式化的頁面源代碼的副本使用函數來預防潛在的敏感信息顯示給用戶。理想的錯誤報告應該被完全禁用在文件里。優化語句,盡量少進行。 Celebrate what youve accomplished, but raise the bar a little higher each time you succeed. 如果一個方法能被靜...
閱讀 2671·2023-04-25 18:10
閱讀 1606·2019-08-30 15:53
閱讀 2788·2019-08-30 13:10
閱讀 3216·2019-08-29 18:40
閱讀 1128·2019-08-23 18:31
閱讀 1201·2019-08-23 16:49
閱讀 3400·2019-08-23 16:07
閱讀 877·2019-08-23 15:27