货币问答:php去重

寒光道人

php中怎么为字符串去重

先拿explode函数转换为数组然后使用array_unique去重复最后,再用join组合成原来的字符串

推荐
不推荐
展开
收起
杨彪

php 多个一维关联数组去重

因为不太了解你其他业务,这里通过对多个数组观察发现,他们的键名都是一致的。所以有2个简单的办法

(1)先翻转一维数组,然后进行合并,再翻转回来

这里就不写详细代码,写下简单过程

  1. $array_a = array_flip($array_a);

    这样交换后的数组内容如下

    Array(    [DHL] => carrier)

    Array(   [HKPT] => carrier)

    ....

  2. 合并数组,使用array_merge,数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值

    $mergeArray = array_merge($array_a, $array_b, $array_c...);

    这样得到一个数组,里面的元素都是键名不重复的,内容如下

    Array

    (

       [DHL] => carrier

       [HKPT] => carrier

       ....

    )

  3. 还原数组,这里如果要完全打散成一个一个的一维数组,就直接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数组去重,怎么以变量$val.xname输出不重复的数值?详细代码如下:

这里的去重不应该放在页面中输出的时候去判断,而是在输出之前做好去重处理,之后再循环输出;

以下为实例:

<?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);    //  去重之后的二维数组把这句话去了,这句话只是用来查看效果的,实际的最终效果要注释掉

推荐
不推荐
展开
收起
童以振

如何对PHP二维数组根据第二维某键值去重和排序

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');

推荐
不推荐
展开
收起
心灵福至

PHP查询数据库既有数字键值又有文本键值,如何去重?

$stmt->setFetchMode(\PDO::FETCH_NAMED);使用这个解决了,您可以帮我修复下分页吗?

推荐
不推荐
展开
收起
谢无化

请教thinkphp 二维数组值去重怎么去的哦

循环一下,,你百度就有例子,直接粘贴

推荐
不推荐
展开
收起
咱们班

php CI框架的AR方法。对于数据库去重 not exists的用法

这种用AR快捷操作是不行的 只能用SQL语句的query

推荐
不推荐
展开
收起
巫鬼世家

php如何快速实现数组去重的实例

$class1 = array("John" => 100, "James" => 85);$class2 = array("Micky" => 78, "John" => 45);$classScores = array_merge_recursive($class1, $class2);print_r($classScores);多看看手册

推荐
不推荐
展开
收起
紫堂幻

php二维数组去重

方法一://二维数组去掉重复值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;}

推荐
不推荐
展开
收起
查看更多答案
收起