我现在已经尝试了几个小时了,我无法完成我想要的工作,我相信你们会比我做得更好:
我有两个这样的数组($ 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 one)):
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 阵列,并且正确地“关注(考虑它作为产品)”但不是全部......
我希望它足够清楚,如果你有任何疑问,我也不会太困惑,或者如果我忘记了,请不要犹豫,发表评论!
非常感谢你们:)
答案 0 :(得分: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];
}