寒光道人
先拿explode函數(shù)轉(zhuǎn)換為數(shù)組然后使用array_unique去重復(fù)最后,再用join組合成原來的字符串
楊彪
因?yàn)椴惶私饽闫渌麡I(yè)務(wù),這里通過對(duì)多個(gè)數(shù)組觀察發(fā)現(xiàn),他們的鍵名都是一致的。所以有2個(gè)簡單的辦法
(1)先翻轉(zhuǎn)一維數(shù)組,然后進(jìn)行合并,再翻轉(zhuǎn)回來
這里就不寫詳細(xì)代碼,寫下簡單過程
$array_a = array_flip($array_a);
這樣交換后的數(shù)組內(nèi)容如下
Array( [DHL] => carrier)
Array( [HKPT] => carrier)
....
合并數(shù)組,使用array_merge,數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值
$mergeArray = array_merge($array_a, $array_b, $array_c...);
這樣得到一個(gè)數(shù)組,里面的元素都是鍵名不重復(fù)的,內(nèi)容如下
Array
(
[DHL] => carrier
[HKPT] => carrier
....
)
還原數(shù)組,這里如果要完全打散成一個(gè)一個(gè)的一維數(shù)組,就直接array_shift,同時(shí)翻轉(zhuǎn)回來
$array_a = array_shift($mergeArray);$array_a = array_flip($array_a);
$array_b = array_shift($mergeArray);$array_b = array_flip($array_b);
...
這里一個(gè)一個(gè)執(zhí)行可以用for循環(huán)替代,數(shù)組中有多少個(gè)元素就執(zhí)行多少次,
(2)最簡單的辦法,只從你提供的例子來說,鍵名都一樣,直接先去掉鍵名,然后組合成一個(gè)數(shù)字索引的數(shù)組,直接array-unique,再把鍵名放回去
如果有不清楚可以發(fā)消息
血月沼澤
這里的去重不應(yīng)該放在頁面中輸出的時(shí)候去判斷,而是在輸出之前做好去重處理,之后再循環(huán)輸出;
以下為實(shí)例:
<?php
$arr = array();
foreach ($data as $k => $val) {
if (!in_array($val['xname'], $arr)) {
$arr[] = $val['xname']; // 記錄值
}else{
// 當(dāng)前值是重復(fù)的,應(yīng)該去掉
unset($data[$k]);
}
}
var_dump($data); // 去重之后的二維數(shù)組
?>
不行,出來后就變成這樣了
var_dump($data); // 去重之后的二維數(shù)組把這句話去了,這句話只是用來查看效果的,實(shí)際的最終效果要注釋掉
童以振
1 需要排序的數(shù)組如下:$array = array( array('name'=>'手機(jī)','brand'=>'諾基亞','price'=>1050), array('name'=>'筆記本電腦','brand'=>'lenovo','price'=>4300), array('name'=>'剃須刀','brand'=>'飛利浦','price'=>3100), array('name'=>'跑步機(jī)','brand'=>'三和松石','price'=>4900), array('name'=>'手表','brand'=>'卡西歐','price'=>960), array('name'=>'液晶電視','brand'=>'索尼','price'=>6299), array('name'=>'激光打印機(jī)','brand'=>'惠普','price'=>1200));2 排序的函數(shù):function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序$arr_nums=$arr=array();foreach($array as $k=>$v){$arr_nums[$k]=$v[$key];}if($order=='asc'){asort($arr_nums);}else{arsort($arr_nums);}foreach($arr_nums as $k=>$v){$arr[$k]=$array[$k];}return $arr;}3 調(diào)用方式:arr_sort($array,'price');
心靈福至
$stmt->setFetchMode(\PDO::FETCH_NAMED);使用這個(gè)解決了,您可以幫我修復(fù)下分頁嗎?
謝無化
循環(huán)一下,,你百度就有例子,直接粘貼
咱們班
這種用AR快捷操作是不行的 只能用SQL語句的query
巫鬼世家
$class1 = array("John" => 100, "James" => 85);$class2 = array("Micky" => 78, "John" => 45);$classScores = array_merge_recursive($class1, $class2);print_r($classScores);多看看手冊(cè)
紫堂幻
方法一://二維數(shù)組去掉重復(fù)值function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=join(',',$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 $temp[]=$v; } $temp=array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 foreach ($temp as $k => $v){ $temp[$k]=explode(',',$v); //再將拆開的數(shù)組重新組裝 } return $temp;}方法二: //二維數(shù)組去掉重復(fù)值,并保留鍵值function array_unique_fb($array2D){ foreach ($array2D as $k=>$v){ $v=join(',',$v); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 $temp[$k]=$v; } $temp=array_unique($temp); //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 foreach ($temp as $k => $v){ $array=explode(',',$v); //再將拆開的數(shù)組重新組裝 //下面的索引根據(jù)自己的情況進(jìn)行修改即可 $temp2[$k]['id'] =$array[0]; $temp2[$k]['title'] =$array[1]; $temp2[$k]['keywords'] =$array[2]; $temp2[$k]['content'] =$array[3]; } return $temp2;}