[英]Trouble with array manipulation php
我已经尝试了几个小时,但我无法完成自己想要的事情,我敢肯定你们会比我做得更好:
我有两个这样的数组($ aOldSales):
array (size=24)
0 =>
array (size=5)
'cslId' => string '1844' (length=4)
etc..
1 =>
array (size=5)
'cslId' => string '1725' (length=4)
etc..
2 => etc...
就像这样($ aOldSalesInfos(big)):
array (size=390)
0 =>
array (size=8)
'careId' => string '15804' (length=5)
more infos here...
'cslId' => string '1844' (length=4)
1 =>
array (size=8)
'careId' => string '12031' (length=5)
more infos here...
'cslId' => string '1844' (length=4)
2 => etc...
我真正想要的是($ aOldSales):
array (size=24)
0 =>
array (size=6)
'cslId' => string '1844' (length=4)
'caresinfos' =>
array (size=8)
'careId' => string '15804' (length=5)
more infos...
more infos...
'cslId' => string '1844' (length=4)
array (size=8)
'careId' => string '15805' (length=5)
more infos...
more infos...
'cslId' => string '1844' (length=4)
到目前为止我尝试过的(我尝试过其他小事情,但这就是这个主意):
for($i=0;$i<count($aOldSales);$i++)
{
for($cpt=0;$cpt<count($aOldSalesInfos);$cpt++)
{
if($aOldSales[$i]['cslId'] == $aOldSalesInfos[$cpt]['cslId'])
{
$aOldSales[$i]['caresinfos'] = $aOldSalesInfos[$cpt];
}
}
}
我得到一种令人鼓舞的结果,因为“careinfos”充满了1个阵列正确的“保健(认为它作为一个货号)”,但不是所有的人都...
我希望它已经足够清楚了,我也不会太困惑,如果您有任何疑问,或者如果我忘记了……,请不要犹豫,发表评论!
非常感谢你们:)
您的内部循环代码:
if ($aOldSales[$i]['cslId'] == $aOldSalesInfos[$cpt]['cslId']) {
$aOldSales[$i]['caresinfos'] = $aOldSalesInfos[$cpt];
}
每次都覆盖相同的数组元素; 要创建不断增长的元素数组,您需要使用[]
运算符:
if ($aOldSales[$i]['cslId'] == $aOldSalesInfos[$cpt]['cslId']) {
$aOldSales[$i]['caresinfos'][] = $aOldSalesInfos[$cpt];
}
另请参阅: 使用方括号语法创建/修改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.