Php 将一个数组合并到另一个数组中

Php 将一个数组合并到另一个数组中,php,arrays,Php,Arrays,我一直在尝试管理阵列,但不知何故,我似乎无法使其工作 我的问题是: 我有一个带有产品的阵列,如下所示: array (size=2) 'count' => string '1' (length=1) 'records' => array (size=5) 'care_Id' => string '11938' (length=5) 'productName' => string 'The name of the produ

我一直在尝试管理阵列,但不知何故,我似乎无法使其工作

我的问题是: 我有一个带有产品的阵列,如下所示:

    array (size=2)
  'count' => string '1' (length=1)
  'records' => 
    array (size=5)
      'care_Id' => string '11938' (length=5)
      'productName' => string 'The name of the product blabla' (length=35)
      'productPrice' => string '98.00' (length=5)
      'beginAt' => string '2010-09-17 09:00:00' (length=19)
      'endAt' => string '2010-09-27 23:59:00' (length=19)
array (size=5)
  'sellQuantity' => string '22' (length=2)
  'validatedQuantity' => string '22' (length=2)
  'lostQuantity' => string '0' (length=1)
  'remainQuantity' => string '0' (length=1)
  'turnover' => string '2177.00' (length=7)
还有另一个数组,其中包含有关产品的关联信息,如下所示:

    array (size=2)
  'count' => string '1' (length=1)
  'records' => 
    array (size=5)
      'care_Id' => string '11938' (length=5)
      'productName' => string 'The name of the product blabla' (length=35)
      'productPrice' => string '98.00' (length=5)
      'beginAt' => string '2010-09-17 09:00:00' (length=19)
      'endAt' => string '2010-09-27 23:59:00' (length=19)
array (size=5)
  'sellQuantity' => string '22' (length=2)
  'validatedQuantity' => string '22' (length=2)
  'lostQuantity' => string '0' (length=1)
  'remainQuantity' => string '0' (length=1)
  'turnover' => string '2177.00' (length=7)
我想做的是输出以下内容:

    array (size=2)
  'count' => string '1' (length=1)
  'records' => 
    array (size=5)
      'care_Id' => string '11938' (length=5)
      'productName' => string 'Journée Semaine Luxe et Bien-être' (length=35)
      'productPrice' => string '98.00' (length=5)
      'beginAt' => string '2010-09-17 09:00:00' (length=19)
      'endAt' => string '2010-09-27 23:59:00' (length=19)
      'sellQuantity' => string '22' (length=2)
      'validatedQuantity' => string '22' (length=2)
      'lostQuantity' => string '0' (length=1)
      'remainQuantity' => string '0' (length=1)
      'turnover' => string '2177.00' (length=7)
但是我做不到。我试过:

$aTest = array_merge($aCares[$i]['records'], $aCaresInfo[$i]);
以下是im使用的循环:

for($i=0;$i<count($aInSaleCares);$i++)
{
    $aFilter['careId'] = $aInSaleCares[$i]['careId'];
    $aCares[] = sthORM::get('Sales')->getInSaleCares($iOffset, $iLimit, array(), $aFilter);
    $aCaresInfo[] = sthORM::get('Sales')->getCaresInfo($aFilter);
    $aTest = array_merge($aCares[$i]['records'], $aCaresInfo[$i]);
}
但是
var\u dump(数组($aCares[$i]['records'))
返回true吗

所以我的问题是:我怎样才能得到我想要的结果呢


编辑:


我也试过:

 $aTest[] = $aCares[$i]['records'] + $aCaresInfo[$i]; // inside of the loop
但当我在循环外打印它时,它会返回一个php致命错误:

Unsupported operand types
在循环中,我正确地获得如下数据:

array (size=10)
  'care_Id' => string '11938' (length=5)
  'productName' => string 'Journée Semaine Luxe et Bien-être' (length=35)
  'productPrice' => string '98.00' (length=5)
  'beginAt' => string '2010-09-17 09:00:00' (length=19)
  'endAt' => string '2010-09-27 23:59:00' (length=19)
  'sellQuantity' => string '22' (length=2)
  'validatedQuantity' => string '22' (length=2)
  'lostQuantity' => string '0' (length=1)
  'remainQuantity' => string '0' (length=1)
  'turnover' => string '2177.00' (length=7)

$aTest是否存在于循环之外?您是否将$aTest的内容放入循环之外的其他内容中,而不将其包含在示例中

$stuff = array();
for($i=0;$i<count($aInSaleCares);$i++)
{
    $aFilter['careId'] = $aInSaleCares[$i]['careId'];
    $aCares[] = sthORM::get('Sales')->getInSaleCares($iOffset, $iLimit, array(), $aFilter);
    $aCaresInfo[] = sthORM::get('Sales')->getCaresInfo($aFilter);
    $aTest = array_merge($aCares[$i]['records'], $aCaresInfo[$i]);
    $stuff[] = $aTest;
}

var_dump($stuff);
$stuff=array();
对于($i=0;$igetInSaleCares($iOffset,$iLimit,array(),$aFilter);
$aCaresInfo[]=sthORM::get('Sales')->getCaresInfo($aFilter);
$aTest=array_merge($aCares[$i]['records',$aCaresInfo[$i]);
$stuff[]=$aTest;
}
var_dump($stuff);
当所有其他操作都失败时,您也可以尝试:

for($i=0;$i<count($aInSaleCares);$i++)
{
    $tmp = array();
    $aFilter['careId'] = $aInSaleCares[$i]['careId'];
    $aCares[] = sthORM::get('Sales')->getInSaleCares($iOffset, $iLimit, array(), $aFilter);
    $aCaresInfo[] = sthORM::get('Sales')->getCaresInfo($aFilter);

    $tmp = $aCares[$i]['records'];
    $tmp = array_merge($tmp, $aCaresInfo[$i]);

    // overwrite the existing contents of 'records'
    $aCares[$i]['records'] = $tmp;

}
for($i=0;$igetinsaleCare($iOffset,$iLimit,array(),$aFilter);
$aCaresInfo[]=sthORM::get('Sales')->getCaresInfo($aFilter);
$tmp=$aCares[$i]['records'];
$tmp=array_merge($tmp,$aCaresInfo[$i]);
//覆盖“记录”的现有内容
$aCares[$i]['records']=$tmp;
}

请为迭代此
$i
循环发布
。当然,如果错误表明它不是数组,它也不是数组:)顺便说一句,您可以使用
$aTest=$aCares[$i]['records']+$acarresinfo[$i]而不是
array\u merge()
谢谢@Jack,但它返回:当我在循环外打印$aTest时,不支持的操作数类型。但是当我在循环内打印它时,所有操作都能完美地工作,因为在循环外,
$I
的值未定义;
错误报告(-1)会有所帮助
在脚本顶部显示所有警告。@Jack但是,如果我想打印数组,我需要做什么才能在循环之外重用数组?循环(){$aTest[]=$aCares[$I]['records']+$aCaresInfo[$I];var_dump($aTest);//效果非常好}var_dump($aTest);//致命错误即使我已经解决了这个问题,你的答案是正确的,而且这是唯一一个我会接受它的答案,因为它可能会帮助其他人。Thank.lol,Thank;)这不是对代码最优雅的编辑,但它会帮助更改错误输出,使其对非数组的内容更有帮助。