http://www.porter.com/fr/fr/product/648162|Sneakers
http://www.porter.com/fr/fr/product/642115|Boots
http://www.porter.com/fr/fr/product/642115|Flat_Shoes
http://www.porter.com/fr/fr/product/642115|Pumps
http://www.porter.com/fr/fr/product/642115|Sandals
http://www.porter.com/fr/fr/product/642115|Sneakers

-----------目标 将|左侧重复的变成---

http://www.porter.com/fr/fr/product/648162|Sneakers
http://www.porter.com/fr/fr/product/642115|Boots@Flat_Shoes@Pumps@Sandals@Sneakers

=====================================================================

<?php
$strs = file("cat.txt");
$strs = array_map('trim',$strs);
$strsc = count($strs);
for($i=0;$i<$strsc;$i++)
{
$keyexplode[] = explode('|',$strs[$i]);
}
//$keyexplodet = array(array('184007', "Flat_Shoes" ), array('184007', "Pumps" ), array('184008', "Sandals" ));
function assoc_unique($arr, $key)
{
$tmp_arr = array();
foreach($arr as $k => $v)
{
if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
{
//echo "<hr/>--";
//print_r($v[$key]);
//print_r($tmp_arr);echo "---<hr/>";
unset($arr[$k][0]);
}
else {
$tmp_arr[] = $v[$key];
}
}
//sort($arr); //sort函数对数组进行排序
return $arr;
}
//print_r("<pre/>");
//print_r(assoc_unique($keyexplode,0));
$keyexplodenew = assoc_unique($keyexplode,0);
//print_r($keyexplodenew);
for($j=0;$j<count($keyexplodenew);$j++)
{
// print_r($j);
// print_r($keyexplodenew[$j]);
if(isset($keyexplodenew[$j][0]))
{
echo "<br/>".$keyexplodenew[$j][0].'|';
//array_merge($keyexplodenew[$j], $keyexplodenew[$j-1]);
}
else{echo '@';}
echo $keyexplodenew[$j][1];
}
//print_r($keyexplodenew);

php文件去重复,二维数组筛选的更多相关文章

  1. php上传excle文件,csv文件解析为二维数组

    解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...

  2. C#读txt文件并写入二维数组中(txt数据行,列未知)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  3. Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组

    经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是 ...

  4. c语言中如何通过二级指针来操作二维数组

    通过二级指针去访问二维数组需要先给二级指针分配等同于二维数组行数的一维数组指针,然后把二维数组的每行首地址赋值给对应位置的一维指针上.之后就可以通过二维指针直接访问了. 参考代码如下,可以看具体注释辅 ...

  5. 论C语言中二级指针和二维数组之间的区别

    刚开始学习C语言的时候,觉得一个数组可以定义一个一级指针去访问,想当然的就觉得可以定义一个二级指针去访问二维数组.很显然这是错误的. 我们来看看C语言的数组在内存中的存储方式. 实际上C语言中的数组, ...

  6. C++二维数组讲解、二维数组的声明和初始化

    我们知道,一维空间是一条线,数学中用一条数轴来表达:二维空间是一个平面,数学中用平面坐标系来表达.那么二维数组又是什么样的呢? 线与面 我们用一个下标来描述一维数组中的某个元素,就好像在用数描述一条线 ...

  7. C指针与二维数组

    先贴上完整的代码: #include<stdio.h> int main(int argc, char *argv[]){ int a[3] [5]={1,2,3,4,5,6,7,8,9, ...

  8. php如何去掉二维数组中重复的元素?

    $arr=array("=>array("a","b")); 我想得到的结果是:只输出第一项(第一项和第三项相同,去第一项)和第二项这个怎么解决 ...

  9. php对二维数组进行相关操作(排序、转换、去空白等)

    php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04   这篇文章主要介绍了php对二维数组进行相关操作,包括php对 ...

随机推荐

  1. HDU 5033 Building(单调栈)

    HDU 5033 Building(单调栈) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5033 Description Once upon a ti ...

  2. 关于:1.指针与对象;2.深浅拷贝(复制);3.可变与不可变对象;4.copy与mutableCopy的一些理解

    最近对深浅拷贝(复制)做了一些研究,在此将自己的理解写下来,希望对大家有所帮助.本人尚处在摸索阶段,希望各位予以指正. 本文包括如下方向的探索: 1.指针与对象: 2.深/浅拷贝(复制): 3.可变/ ...

  3. hdu5514 非2的次幂容斥原理

    /* 1 126 223092870 210 330 390 462 510 546 570 690 714 770 798 858 910 966 1122 1155 1190 1254 1326 ...

  4. JMM内存管理

    原文地址http://www.cnblogs.com/BangQ/p/4045954.html 原本准备把内存模型单独放到某一篇文章的某个章节里面讲解,后来查阅了国外很多文档才发现其实JVM内存模型的 ...

  5. 数据库还原失败System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份

    结尾日志的问题 还原选择中去掉结尾日志就可以了 转载自:http://blog.csdn.net/aojiancc2/article/details/46316451

  6. 第一次使用cnblogs

    第一次使用!!!!!留名纪念下!!!!!!!!!!!

  7. SQL learning

    一.创建和删除数据库 1.创建用户 //创建用户且置密码,在MySQL中行,但在Oracle中行  ----必须在超级管理员身份下操作 create user hncu identified by ' ...

  8. Linux安全检测常用方法

    一. 系统状态备份 主要是网络.服务.端口.进程等状态信息的备份工作 系统服务备份: chkconfig --list > services.log 进程备份: ps -ef > ps.l ...

  9. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  10. c# 方法重载

    在c#中同样的方法名称不一样的参数数量和类型可以实现方法重载 class ResultDisplayer{void DisplayResult(string result){// implementa ...