这个是数组
主要功能就是Thinkphp视图模型里查询的结果 我想
查询每个数组里的相同的标题值 然后进行合并 合并数组 貌似用array_merge()
我怎么查找相同的标题呢 foreach 遍历 返回数组里的索引值 可以么 貌似 key() 函数有这个功能 求好心人具体写个
相同的标题 数组元素的位置 这样返回 合并的时候就直接 这样的形式用 可以么
array_merge(array[0],array[1])
相同的标题 然后合并的是图片的连接字段这样 pictureurl就是这个不一样
简单说就是多图上传 发文章这样的 文章找找以后要是有几千篇 那数组就是好几倍的量 高效的计算 能用的 求大神指点啊~
这样
1 | 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" }}
|
登入後複製
回复讨论(解决方案)
那你最终要达成什么样的结果呢?
目的不同,算法也不同
那你最终要达成什么样的结果呢?
目的不同,算法也不同
1 | 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,attachment/picture/uploadify/20141120/546da0746edb8.png" }}
|
登入後複製
就是这样的 相同的标题 不同的就是pictureurl
合并就行了 求版主指点~
1 | $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 );
|
登入後複製
登入後複製
1 | 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' ,)
|
登入後複製
登入後複製
1 | $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 );
|
登入後複製
登入後複製
1 | 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' ,)
|
登入後複製
登入後複製
版主大人 还得麻烦您看眼 这个是在相同的标题下才合并的 貌似有点复杂
1 | array (6) { [0] => array (5) { [ "picTitle" ] => string(7) "标题2" [ "picCategroy" ] => string(6) "海报" [ "picAuthor" ] => string(12) "星耀学园" [ "picPostTime" ] => string(19) "2014-11-26 11:59:50" [ "pictureurl" ] => string(55) "attachment/picture/uploadify/20141126/547550278b7db.jpg" } [1] => array (5) { [ "picTitle" ] => string(7) "标题2" [ "picCategroy" ] => string(6) "海报" [ "picAuthor" ] => string(12) "星耀学园" [ "picPostTime" ] => string(19) "2014-11-26 11:59:50" [ "pictureurl" ] => string(55) "attachment/picture/uploadify/20141126/54755027ab89b.jpg" } [2] => array (5) { [ "picTitle" ] => string(7) "标题2" [ "picCategroy" ] => string(6) "海报" [ "picAuthor" ] => string(12) "星耀学园" [ "picPostTime" ] => string(19) "2014-11-26 11:59:50" [ "pictureurl" ] => string(55) "attachment/picture/uploadify/20141126/547550273b753.jpg" } [3] => array (5) { [ "picTitle" ] => string(7) "标题2" [ "picCategroy" ] => string(6) "海报" [ "picAuthor" ] => string(12) "星耀学园" [ "picPostTime" ] => string(19) "2014-11-26 11:59:50" [ "pictureurl" ] => string(55) "attachment/picture/uploadify/20141126/54755027d8488.jpg" } [4] => array (5) { [ "picTitle" ] => string(33) "同步写入信息和附件表里" [ "picCategroy" ] => string(6) "海报" [ "picAuthor" ] => string(12) "星耀学园" [ "picPostTime" ] => string(19) "2014-11-20 16:05:16" [ "pictureurl" ] => string(55) "attachment/picture/uploadify/20141120/546da0746edb8.png" } [5] => array (5) { [ "picTitle" ] => string(33) "同步写入信息和附件表里" [ "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 相同标题的都合并在一起 一个数组 标题2相同的合并在一起一个数组 就是图片链接pictureurl 这个进行合并 求大大指点 如何判断很多个标题里 判断标题是重复的呢 这个肯定是一个标题有多个重复的数组, 主要是区分去多个不同标题。
1 | array ( 'picTitle' => '标题2,同步写入信息和附件表里' , 'picCategroy' => '海报' , 'picAuthor' => '星耀学园' , 'picPostTime' => '2014-11-26 11:59:50,2014-11-20 16:05:16' , 'pictureurl' => 'attachment/picture/uploadify/20141126/547550278b7db.jpg,attachment/picture/uploadify/20141126/54755027ab89b.jpg,attachment/picture/uploadify/20141126/547550273b753.jpg,attachment/picture/uploadify/20141126/54755027d8488.jpg,attachment/picture/uploadify/20141120/546da0746edb8.png,attachment/picture/uploadify/20141120/546da0784831c.png' , )
|
登入後複製
1 | $ar = array ( array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/547550278b7db.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/54755027ab89b.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/547550273b753.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/54755027d8488.jpg" , ), array ( "picTitle" => "同步写入信息和附件表里" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-20 16:05:16" , "pictureurl" => "attachment/picture/uploadify/20141120/546da0746edb8.png" , ), array ( "picTitle" => "同步写入信息和附件表里" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-20 16:05:16" , "pictureurl" => "attachment/picture/uploadify/20141120/546da0784831c.png" , ),); $res = array (); foreach ( $ar as $item ) { if (! isset( $res [ $item [ 'picTitle' ]])) $res [ $item [ 'picTitle' ]] = $item ; else $res [ $item [ 'picTitle' ]][ 'pictureurl' ] .= ',' . $item [ 'pictureurl' ];}var_export( array_values ( $res ));
|
登入後複製
登入後複製
1 | array ( 0 => array ( 'picTitle' => '标题2' , 'picCategroy' => '海报' , 'picAuthor' => '星耀学园' , 'picPostTime' => '2014-11-26 11:59:50' , 'pictureurl' => 'attachment/picture/uploadify/20141126/547550278b7db.jpg,attachment/picture/uploadify/20141126/54755027ab89b.jpg,attachment/picture/uploadify/20141126/547550273b753.jpg,attachment/picture/uploadify/20141126/54755027d8488.jpg' , ), 1 => array ( 'picTitle' => '同步写入信息和附件表里' , 'picCategroy' => '海报' , 'picAuthor' => '星耀学园' , 'picPostTime' => '2014-11-20 16:05:16' , 'pictureurl' => 'attachment/picture/uploadify/20141120/546da0746edb8.png,attachment/picture/uploadify/20141120/546da0784831c.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]); //删除原来在数组存在的值
}
}
补充下 unset($ar[$key]); //删除原来在数组存在的值
这句移动到这个下面,疏忽写错了
//在的话合并
$ar[$key]=array_merge($ar[$key],$map_arr[$item['picTitle']]);
1 | $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 );
|
登入後複製
1 | $ar = array ( array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/547550278b7db.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/54755027ab89b.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/547550273b753.jpg" , ), array ( "picTitle" => "标题2" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-26 11:59:50" , "pictureurl" => "attachment/picture/uploadify/20141126/54755027d8488.jpg" , ), array ( "picTitle" => "同步写入信息和附件表里" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-20 16:05:16" , "pictureurl" => "attachment/picture/uploadify/20141120/546da0746edb8.png" , ), array ( "picTitle" => "同步写入信息和附件表里" , "picCategroy" => "海报" , "picAuthor" => "星耀学园" , "picPostTime" => "2014-11-20 16:05:16" , "pictureurl" => "attachment/picture/uploadify/20141120/546da0784831c.png" , ),); $res = array (); foreach ( $ar as $item ) { if (! isset( $res [ $item [ 'picTitle' ]])) $res [ $item [ 'picTitle' ]] = $item ; else $res [ $item [ 'picTitle' ]][ 'pictureurl' ] .= ',' . $item [ 'pictureurl' ];}var_export( array_values ( $res ));
|
登入後複製
登入後複製
1 | array ( 0 => array ( 'picTitle' => '标题2' , 'picCategroy' => '海报' , 'picAuthor' => '星耀学园' , 'picPostTime' => '2014-11-26 11:59:50' , 'pictureurl' => 'attachment/picture/uploadify/20141126/547550278b7db.jpg,attachment/picture/uploadify/20141126/54755027ab89b.jpg,attachment/picture/uploadify/20141126/547550273b753.jpg,attachment/picture/uploadify/20141126/54755027d8488.jpg' , ), 1 => array ( 'picTitle' => '同步写入信息和附件表里' , 'picCategroy' => '海报' , 'picAuthor' => '星耀学园' , 'picPostTime' => '2014-11-20 16:05:16' , 'pictureurl' => 'attachment/picture/uploadify/20141120/546da0746edb8.png,attachment/picture/uploadify/20141120/546da0784831c.png' , ),)
|
登入後複製
登入後複製
谢谢版主大人 解决了 只不过最后的这个var_export函数去掉 就是我要的结果了~