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

php中文网
发布: 2016-06-13 12:10:33
原创
1407人浏览过

请问php二维数组 查找相同的值合并 如何写?
这个是数组 
主要功能就是Thinkphp视图模型里查询的结果  我想

查询每个数组里的相同的标题值 然后进行合并                合并数组 貌似用array_merge()
我怎么查找相同的标题呢  foreach 遍历 返回数组里的索引值 可以么       貌似 key() 函数有这个功能 求好心人具体写个

相同的标题 数组元素的位置 这样返回 合并的时候就直接 这样的形式用 可以么
array_merge(array[0],array[1])

相同的标题 然后合并的是图片的连接字段这样 pictureurl就是这个不一样
简单说就是多图上传 发文章这样的  文章找找以后要是有几千篇 那数组就是好几倍的量  高效的计算 能用的 求大神指点啊~ 
这样

array(2) {<br />  [0] => array(5) {<br />    ["picTitle"] => string(33) "标题1"<br />    ["picCategroy"] => string(6) "分类"<br />    ["picAuthor"] => string(12) "作者"<br />    ["picPostTime"] => string(19) "2014-11-20 16:05:16"<br />    ["pictureurl"] => string(55) "attachment/picture/uploadify/20141120/546da0784831c.png"<br />  }<br />  [1] => array(5) {<br />    ["picTitle"] => string(33) "标题1"<br />    ["picCategroy"] => string(6) "分类"<br />    ["picAuthor"] => string(12) "作者"<br />    ["picPostTime"] => string(19) "2014-11-20 16:05:16"<br />    ["pictureurl"] => string(55) "attachment/picture/uploadify/20141120/546da0746edb8.png"<br />  }<br />}
登录后复制

------解决思路----------------------
$ar = array(<br />  array(<br />    "picTitle" => "标题1",<br />    "picCategroy" => "分类",<br />    "picAuthor" => "作者",<br />    "picPostTime" => "2014-11-20 16:05:16",<br />    "pictureurl" => "attachment/picture/uploadify/20141120/546da0784831c.png",<br />  ),<br />  array(<br />    "picTitle" => "标题1",<br />    "picCategroy" => "分类",<br />    "picAuthor" => "作者",<br />    "picPostTime" => "2014-11-20 16:05:16",<br />    "pictureurl" => "attachment/picture/uploadify/20141120/546da0746edb8.png",<br />  ),<br />);<br />foreach(call_user_func_array('array_merge_recursive', $ar) as $key=>$item) {<br />  $res[$key] = join(',', array_unique($item));<br />}<br />var_export($res);<br />
登录后复制
array (<br />  'picTitle' => '标题1',<br />  'picCategroy' => '分类',<br />  'picAuthor' => '作者',<br />  'picPostTime' => '2014-11-20 16:05:16',<br />  'pictureurl' => 'attachment/picture/uploadify/20141120/546da0784831c.png,attachment/picture/uploadify/20141120/546da0746edb8.png',<br />)<br />
登录后复制

------解决思路----------------------
随便写了下,没测试过,大楷是这么个思路

$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]); //删除原来在数组存在的值
}
}

------解决思路----------------------
<br />$arr = array(<br />  array(<br />    "picTitle" => "标题1",<br />    "picCategroy" => "分类",<br />    "picAuthor" => "作者",<br />    "picPostTime" => "2014-11-20 16:05:16",<br />    "pictureurl" => "attachment/picture/uploadify/20141120/546da0784831c.png",<br />  ),<br />  array(<br />    "picTitle" => "标题1",<br />    "picCategroy" => "分类",<br />    "picAuthor" => "作者",<br />    "picPostTime" => "2014-11-20 16:05:16",<br />    "pictureurl" => "attachment/picture/uploadify/20141120/546da0746edb8.png",<br />  )<br />);<br />$item=array();<br />foreach($arr as $key=>$value){<br />    foreach($value as $k=>$v){<br />        if(!isset($item[$k])){<br />            $item[$k]=$v;<br />        }<br />    }<br />}<br />print_r($item);<br />
登录后复制

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号