资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php过滤掉相同的数据 php过滤函数

php 一个2维数组中有对象,怎么过滤多个数组中重复数据,整合为一个数组(里有对象及数据)

先将所有数据放到一个数组里

为南澳等地区用户提供了全套网页设计制作服务,及南澳网站建设行业解决方案。主营业务为成都网站制作、成都网站建设、南澳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

$arr_new_str =Array();//放字符串的数组

$arr_new_obj = Array();//放对象的数组

foreach( $arr_old as $arr_in ){

foreach( $arr_in as $value){

//双重遍历,开始 将字符串和对象分开

if( $value instanceof stdClass )

{ //所有对象

$arr_new_obj[] =$value;

}else {//所有字符串

$arr_new_str[]=$value;

}

}

}

//array_unique()函数,我不清楚能不能排除对象,所以我又分了一次

$arr_new= array_unique( $arr_new_str );

//验证对象

$count = count( $arr_new_obj);

for( $i=0;$i$count;$i++){

//得到对象数组的第一个值,

for($j=$i+1;$j$count;$j++){

//将第一个对象和其他值比较,

if( $arr_new_obj[ i ] == $arr_new_obj[ j ] ){

//相等,就将第一个删除;依次类推

unset( $arr_new_obj[ i ] );

}

}

}

//最后得到的就是没有相同对象的新数组

//和并两个数组;

$array_new = array_merge( $arr_new ,$arr_new_obj );

//array_merge() 函数把两个或多个数组合并为一个数组。

//如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数

//字索引的,则键名会以连续方式重新索引。

这个题,我认为 难在如何判断两个对象是否相等,我也是,百度了一下,才知道的,请楼主也学习一下;

我的方法比较长,我看一楼 用到的 递归,水准比我高多了,学习了

【php】合并多个数组并去掉相同的

你是要把$tpid数组的内容合并吗,可以先弄了一个空数组,for里面归并到这个空数组,for结束之后进行唯一处理,大致逻辑如下:

?php

$result=Array();

for($i=0;$i$num;$i++){

$tpid=$data[$i]['busitype'];

$tpid=explode(".",$tpid,-1);

print_r($tpid);

echo "br";

$result=array_merge($result,$tpid);

}

$result=array_unique($result);

?

补充:

那是array_merge的问题,重复的下标会被合并,你试试看使用array_merge_recursive吧,我无法测试程序,没有你的数据。

php数组的重复值如何过滤掉

array_unique() 函数移除数组中的重复的值,并返回结果数组。

当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。

返回的数组中键名不变。

array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

php 二维数组过滤相同的值

$tmp=array();

$s=array();//你的数组

foreach($s as $k=$v){

if(in_array($v['name'],$tmp)){

unset($s[$k]);

}

$tmp[]=$v['name'];

}

var_dump($s);


本文名称:php过滤掉相同的数据 php过滤函数
URL链接:http://cdkjz.cn/article/ddijsjd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220