我已经试了几个小时了,但我不能做到我想要的,我相信你们会做得比我好:
我有两个这样的数组($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...
,像这样($ aoldsalesinfo (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];
}
}
}
我得到了一种令人鼓舞的结果,因为'careinfo '充满了1数组,正确的"care(将其视为产品)",但不是全部…
我希望这足够清楚,我没有太困惑,如果你有任何问题,或者如果我忘记了什么,不要犹豫留下评论!
非常感谢你们:)
你的内循环代码:
if ($aOldSales[$i]['cslId'] == $aOldSalesInfos[$cpt]['cslId']) {
$aOldSales[$i]['caresinfos'] = $aOldSalesInfos[$cpt];
}
每次重写相同的数组元素;要创建一个不断增长的元素数组,您需要使用[]
操作符:
if ($aOldSales[$i]['cslId'] == $aOldSalesInfos[$cpt]['cslId']) {
$aOldSales[$i]['caresinfos'][] = $aOldSalesInfos[$cpt];
}
参见:用方括号语法创建/修改