请问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" }}
回复讨论(解决方案)
那你最终要达成什么样的结果呢?
目的不同,算法也不同
那你最终要达成什么样的结果呢?
目的不同,算法也不同
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
合并就行了 求版主指点~
$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", ),);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',)
版主大人 还得麻烦您看眼 这个是在相同的标题下才合并的 貌似有点复杂
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 这个进行合并 求大大指点 如何判断很多个标题里 判断标题是重复的呢 这个肯定是一个标题有多个重复的数组, 主要是区分去多个不同标题。
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', )
$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));
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']]);
$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);
$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));
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函数去掉 就是我要的结果了~

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV
