请问php二维数组 查找相同的值合并 如何写?
这个是数组
主要功能就是Thinkphp视图模型里查询的结果 我想
查询每个数组里的相同的标题值 然后进行合并 合并数组 貌似用array_merge()
我怎么查找相同的标题呢 foreach 遍历 返回数组里的索引值 可以么 貌似 key() 函数有这个功能 求好心人具体写个
相同的标题 数组元素的位置 这样返回 合并的时候就直接 这样的形式用 可以么
array_merge(array[0],array[1])
相同的标题 然后合并的是图片的连接字段这样 pictureurl就是这个不一样
简单说就是多图上传 发文章这样的 文章找找以后要是有几千篇 那数组就是好几倍的量 高效的计算 能用的 求大神指点啊~
这样
1 | 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 />}
|
로그인 후 복사
------解决思路----------------------1 | $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 />
|
로그인 후 복사
1 | 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]); //删除原来在数组存在的值
}
}
------解决思路----------------------1 | <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 />
|
로그인 후 복사