您好,欢迎访问一九零五行业门户网

请教php二维数组 查找相同的值合并 怎么写

请问php二维数组 查找相同的值合并 如何写?
这个是数组 
主要功能就是thinkphp视图模型里查询的结果  我想
查询每个数组里的相同的标题值 然后进行合并                合并数组 貌似用array_merge()
我怎么查找相同的标题呢  foreach 遍历 返回数组里的索引值 可以么       貌似 key() 函数有这个功能 求好心人具体写个
相同的标题 数组元素的位置 这样返回 合并的时候就直接 这样的形式用 可以么
array_merge(array[0],array[1])
相同的标题 然后合并的是图片的连接字段这样 pictureurl就是这个不一样
简单说就是多图上传 发文章这样的  文章找找以后要是有几千篇 那数组就是好几倍的量  高效的计算 能用的 求大神指点啊~ 
这样
array(2) {
[0] => array(5) {
[pictitle] => string(33) 标题1
[piccategroy] => string(6) 分类
[picauthor] => string(12) 作者
[picposttime] => string(19) 2014-11-20 16:05:16
[pictureurl] => string(55) attachment/picture/uploadify/20141120/546da0784831c.png
}
[1] => array(5) {
[pictitle] => string(33) 标题1
[piccategroy] => string(6) 分类
[picauthor] => string(12) 作者
[picposttime] => string(19) 2014-11-20 16:05:16
[pictureurl] => string(55) attachment/picture/uploadify/20141120/546da0746edb8.png
}
}
------解决思路----------------------
$ar = array(
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0784831c.png,
),
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0746edb8.png,
),
);
foreach(call_user_func_array('array_merge_recursive', $ar) as $key=>$item) {
$res[$key] = join(',', array_unique($item));
}
var_export($res);

array (
'pictitle' => '标题1',
'piccategroy' => '分类',
'picauthor' => '作者',
'picposttime' => '2014-11-20 16:05:16',
'pictureurl' => 'attachment/picture/uploadify/20141120/546da0784831c.png,attachment/picture/uploadify/20141120/546da0746edb8.png',
)

------解决思路----------------------
随便写了下,没测试过,大楷是这么个思路
$ar = array(
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0784831c.png,
),
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0746edb8.png,
),
);
//标题=>数组索引数组
$map_arr=array();
foreach($ar as $key=>$item)
{
//判断是否在标题=>数组索引数组中
if(isset($map_arr[$item['pictitle']]))
{
//在的话合并
$ar[$key]=array_merge($ar[$key],$map_arr[$item['pictitle']]);
}
else
{
//不在的话存入映射索引
$map_arr[$item['pictitle']]=$item;
unset($ar[$key]); //删除原来在数组存在的值
}
}
------解决思路----------------------
$arr = array(
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0784831c.png,
),
array(
pictitle => 标题1,
piccategroy => 分类,
picauthor => 作者,
picposttime => 2014-11-20 16:05:16,
pictureurl => attachment/picture/uploadify/20141120/546da0746edb8.png,
)
);
$item=array();
foreach($arr as $key=>$value){
foreach($value as $k=>$v){
if(!isset($item[$k])){
$item[$k]=$v;
}
}
}
print_r($item);

其它类似信息

推荐信息