先拿explode函数转换为数组然后使用array_unique去重复最后,再用join组合成原来的字符串
因为不太了解你其他业务,这里通过对多个数组观察发现,他们的键名都是一致的。所以有2个简单的办法
(1)先翻转一维数组,然后进行合并,再翻转回来
这里就不写详细代码,写下简单过程
$array_a = array_flip($array_a);
这样交换后的数组内容如下
Array( [DHL] => carrier)
Array( [HKPT] => carrier)
....
合并数组,使用array_merge,数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值
$mergeArray = array_merge($array_a, $array_b, $array_c...);
这样得到一个数组,里面的元素都是键名不重复的,内容如下
Array
(
[DHL] => carrier
[HKPT] => carrier
....
)
还原数组,这里如果要完全打散成一个一个的一维数组,就直接array_shift,同时翻转回来
$array_a = array_shift($mergeArray);$array_a = array_flip($array_a);
$array_b = array_shift($mergeArray);$array_b = array_flip($array_b);
...
这里一个一个执行可以用for循环替代,数组中有多少个元素就执行多少次,
(2)最简单的办法,只从你提供的例子来说,键名都一样,直接先去掉键名,然后组合成一个数字索引的数组,直接array-unique,再把键名放回去
如果有不清楚可以发消息
这里的去重不应该放在页面中输出的时候去判断,而是在输出之前做好去重处理,之后再循环输出;
以下为实例:
<?php
$arr = array();
foreach ($data as $k => $val) {
if (!in_array($val['xname'], $arr)) {
$arr[] = $val['xname']; // 记录值
}else{
// 当前值是重复的,应该去掉
unset($data[$k]);
}
}
var_dump($data); // 去重之后的二维数组
?>
不行,出来后就变成这样了
var_dump($data); // 去重之后的二维数组把这句话去了,这句话只是用来查看效果的,实际的最终效果要注释掉
1 需要排序的数组如下:$array = array( array('name'=>'手机','brand'=>'诺基亚','price'=>1050), array('name'=>'笔记本电脑','brand'=>'lenovo','price'=>4300), array('name'=>'剃须刀','brand'=>'飞利浦','price'=>3100), array('name'=>'跑步机','brand'=>'三和松石','price'=>4900), array('name'=>'手表','brand'=>'卡西欧','price'=>960), array('name'=>'液晶电视','brand'=>'索尼','price'=>6299), array('name'=>'激光打印机','brand'=>'惠普','price'=>1200));2 排序的函数: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 调用方式:arr_sort($array,'price');
$stmt->setFetchMode(\PDO::FETCH_NAMED);使用这个解决了,您可以帮我修复下分页吗?
循环一下,,你百度就有例子,直接粘贴
这种用AR快捷操作是不行的 只能用SQL语句的query
$class1 = array("John" => 100, "James" => 85);$class2 = array("Micky" => 78, "John" => 45);$classScores = array_merge_recursive($class1, $class2);print_r($classScores);多看看手册
方法一://二维数组去掉重复值function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[]=$v; } $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 foreach ($temp as $k => $v){ $temp[$k]=explode(',',$v); //再将拆开的数组重新组装 } return $temp;}方法二: //二维数组去掉重复值,并保留键值function array_unique_fb($array2D){ foreach ($array2D as $k=>$v){ $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[$k]=$v; } $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 foreach ($temp as $k => $v){ $array=explode(',',$v); //再将拆开的数组重新组装 //下面的索引根据自己的情况进行修改即可 $temp2[$k]['id'] =$array[0]; $temp2[$k]['title'] =$array[1]; $temp2[$k]['keywords'] =$array[2]; $temp2[$k]['content'] =$array[3]; } return $temp2;}