求教一个数组问题
程序员文章站
2022-04-14 21:15:15
...
我现在有上面的一个数组数据,想改成下面这样,可以改吗?
主要就是想把两个数组中相同的地方合并在一起,然后将不一样的地方,再重新开个数组存起来
回复内容:
我现在有上面的一个数组数据,想改成下面这样,可以改吗?
主要就是想把两个数组中相同的地方合并在一起,然后将不一样的地方,再重新开个数组存起来
你这边应该是要一些特定字段重复取出来用吧,而不是重复的就要可以试试下面这语句
$simiArray = [];
foreach($resourceArray as $rVal) {
$order_sn = $rVal['order_sn'];
$simiArray[$rVal['order_sn']]['order_sn'] = $rVal['order_sn'];
$simiArray[$order_sn]['order_add_time'] = $rVal['order_add_time'];
$simiArray[$rVal['order_sn']]['pay_amonut'] = $rVal['pay_amonut'];
unset($rVal['order_sn']);
unset($rVal['order_add_time']);
unset($rVal['pay_amonut']);
$simiArray[$order_sn]['order_detail'][] = $rVal;
}
可以实现,不过标准库里应该是没有这种功能的函数的,要自己写。
现在不方便写代码,就先给个思路吧:
输入两个数组的情况下,遍历第一个数组,如果两个数组当前 key 的 value 一样,那就把这个值 push 到一个新数组里,并且从输入的两个数组中删除这个键值。如果两个数组中的值不一样就不用管。
这样处理完后我们可以得到一个储存有两个数组之间相同键值对的数组,以及两个仅储存不同的内容的数组(因为相同的在上面被删掉了),最后之要把后两个数组 push 进第一个数组即可。
PS:从数组中删除元素可能会有性能问题,可以单开两个数组储存
推荐阅读
-
javascript - 关于正则表达式的一个问题
-
php 统计二维数组中某个相等值的总个数,并且组合成一个新的数组
-
php中二维数组排序问题方法详解
-
C++中指针数组使用过程中的问题
-
javascript pop() 删除数组中最后的一个元素
-
php从数组中随机抽取一个或多个单元办法
-
PHP 删除数组第一个元素和最后一个元素
-
不知大家遇到过这种问题么,一个层宽度设为100%,并设置背景图片,在浏览器中浏览,缩小窗口到滚动条出现,然后拖动滚动条到右侧,右侧的区域变成空白,怎么解决?_html/css_WEB-ITnose
-
wap网站开发之解决Ajax跨域获取json数组的问题
-
一个超难的问题,关于验证码不显示