失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php 统计二维数组中某个相等值的总个数 并且组合成一个新的数组

php 统计二维数组中某个相等值的总个数 并且组合成一个新的数组

时间:2020-11-04 13:52:36

相关推荐

php 统计二维数组中某个相等值的总个数 并且组合成一个新的数组

后端开发|php教程

php 统计二维数组中某个相等值的总个数,并且组合成一个新的数组

后端开发-php教程

php 多维数组

图片区 小说区 电影区 源码,vscode bash终端,teredo ubuntu,tomcat打包jdk,sqlite程序如何打包,wordpress邮箱汉化插件,前端后端框架什么意思,微视爬虫数据采集粉丝,php邮箱验证正则,崇左seo电话,站长之家特效网站,易语言网页操作之多彩编辑框,dedecms下载模板文件lzw

比如这样的,我想将这个数组里面 m_id 相等数组元素再组合成一个新的数组:效果图如下:

mvc装饰公司企业站源码,vscode 自定义,ubuntu 开启bbr,tomcat显示不了图片,sqlite3的编程接口,爬虫恒温箱养蜘蛛可以吗,php提取关键字,谷歌seo推广公司伊犁,网站开源程序有哪些,帝国hml5模板lzw

小学学校网站源码,vscode项目分支没显示,ubuntu 更新vim,tomcat 8安装教程,火狐网络爬虫,php 获取xml属性,seo推广技巧培训留痕,轻量级网站管理系统,苹果cmsv8h5模板lzw

回复讨论(解决方案)

举例时要自圆其说,不然会产生误解

原始数据中并没有:

‘sv_id’ => 5, ‘mid’ => 0

‘sv_id’ => 9, ‘mid’ => 3

的项,结果中是如何出来的?

举例时要自圆其说,不然会产生误解

原始数据中并没有:

‘sv_id’ => 5, ‘mid’ => 0

‘sv_id’ => 9, ‘mid’ => 3

的项,结果中是如何出来的?

额,是的,不过数据是可以随便改的啊,好好看看两张图的数组结构吧。。。

这根结构没什么关系吧?

从算法角度上看:是如何产生不在原始数据中的项

1,m_id=>1,sv_question1=>20),array(sv_id=>2,m_id=>2,sv_question1=>10),array(sv_id=>3,m_id=>1,sv_question1=>20),array(sv_id=>4,m_id=>3,sv_question1=>20),array(sv_id=>5,m_id=>2,sv_question1=>10));//var_dump($arr);$ar=array();foreach($arr as $v){if(empty($ar) || !in_array($v,$ar)){$ar[$v[m_id]][$v[sv_id]]=$v;}else{foreach($ar as $ka=>$va){if($ka==$v[m_id]){$ar[$ka][$v[sv_id]]=$v;}}}}echo "

";var_dump($ar);

你复制运行一下看是不是你要的效果。

效果图:

不考虑你多出的项目(我无法臆造)

$ar = array( array( sv_id => 1, mid => 1, sv_question1 => 20 ), array( sv_id => 2, mid => 2, sv_question1 => 10 ), array( sv_id => 3, mid => 1, sv_question1 => 20 ), array( sv_id => 4, mid => 3, sv_question1 => 20 ), array( sv_id => 5, mid => 2, sv_question1 => 20 ),);$res = array();foreach($ar as $item) { $res[$item[mid]][$item[sv_id]] = $item;}print_r($res);

Array( [1] => Array ( [1] => Array( [sv_id] => 1 [mid] => 1 [sv_question1] => 20) [3] => Array( [sv_id] => 3 [mid] => 1 [sv_question1] => 20) ) [2] => Array ( [2] => Array( [sv_id] => 2 [mid] => 2 [sv_question1] => 10) [5] => Array( [sv_id] => 5 [mid] => 2 [sv_question1] => 20) ) [3] => Array ( [4] => Array( [sv_id] => 4 [mid] => 3 [sv_question1] => 20) ))

哇,#5版主,,,为啥我想不到你写的方法呢。。你的好简洁。

1,m_id=>1,sv_question1=>20),array(sv_id=>2,m_id=>2,sv_question1=>10),array(sv_id=>3,m_id=>1,sv_question1=>20),array(sv_id=>4,m_id=>3,sv_question1=>20),array(sv_id=>5,m_id=>2,sv_question1=>10));//var_dump($arr);$ar=array();foreach($arr as $v){if(empty($ar) || !in_array($v,$ar)){$ar[$v[m_id]][$v[sv_id]]=$v;}else{foreach($ar as $ka=>$va){if($ka==$v[m_id]){$ar[$ka][$v[sv_id]]=$v;}}}}echo "

";var_dump($ar);

你复制运行一下看是不是你要的效果。

效果图:

嗯,这个办法可以,谢啦, 不过下面的大神更恐怖,太简单了!!!

不考虑你多出的项目(我无法臆造)

$ar = array( array( sv_id => 1, mid => 1, sv_question1 => 20 ), array( sv_id => 2, mid => 2, sv_question1 => 10 ), array( sv_id => 3, mid => 1, sv_question1 => 20 ), array( sv_id => 4, mid => 3, sv_question1 => 20 ), array( sv_id => 5, mid => 2, sv_question1 => 20 ),);$res = array();foreach($ar as $item) { $res[$item[mid]][$item[sv_id]] = $item;}print_r($res);

Array( [1] => Array ( [1] => Array( [sv_id] => 1 [mid] => 1 [sv_question1] => 20) [3] => Array( [sv_id] => 3 [mid] => 1 [sv_question1] => 20) ) [2] => Array ( [2] => Array( [sv_id] => 2 [mid] => 2 [sv_question1] => 10) [5] => Array( [sv_id] => 5 [mid] => 2 [sv_question1] => 20) ) [3] => Array ( [4] => Array( [sv_id] => 4 [mid] => 3 [sv_question1] => 20) ))

太牛了!!!膜拜 谢谢!!

这根结构没什么关系吧?

从算法角度上看:是如何产生不在原始数据中的项

额,是,sorry 我写错,少了一个下划线 m_id 写成了mid

1,m_id=>1,sv_question1=>20),array(sv_id=>2,m_id=>2,sv_question1=>10),array(sv_id=>3,m_id=>1,sv_question1=>20),array(sv_id=>4,m_id=>3,sv_question1=>20),array(sv_id=>5,m_id=>2,sv_question1=>10));//var_dump($arr);$ar=array();foreach($arr as $v){if(empty($ar) || !in_array($v,$ar)){$ar[$v[m_id]][$v[sv_id]]=$v;}else{foreach($ar as $ka=>$va){if($ka==$v[m_id]){$ar[$ka][$v[sv_id]]=$v;}}}}echo "

";var_dump($ar);

你复制运行一下看是不是你要的效果。

效果图:

嗯,这个办法可以,谢啦, 不过下面的大神更恐怖,太简单了!!!

1,m_id=>1,sv_question1=>20),array(sv_id=>2,m_id=>2,sv_question1=>10),array(sv_id=>3,m_id=>1,sv_question1=>20),array(sv_id=>4,m_id=>3,sv_question1=>20),array(sv_id=>5,m_id=>2,sv_question1=>10));//var_dump($arr);$ar=array();foreach($arr as $v){if(empty($ar) || !in_array($v,$ar)){$ar[$v[m_id]][$v[sv_id]]=$v;}else{foreach($ar as $ka=>$va){if($ka==$v[m_id]){$ar[$ka][$v[sv_id]]=$v;}}}}echo "

";var_dump($ar);

你复制运行一下看是不是你要的效果。

效果图:

嗯,这个办法可以,谢啦, 不过下面的大神更恐怖,太简单了!!!

如果觉得《php 统计二维数组中某个相等值的总个数 并且组合成一个新的数组》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。