繁体   English   中英

数组操作PHP的麻烦

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM