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