数组操作的问题


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...

,像这样($ 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];
}

参见:用方括号语法创建/修改