用关联键连接数组


concatenate arrays with associative keys

我让代码说话:

$params = array();
$qtyCount = count(array(1,2,3,4,5));
$qtyAr = array(6,7,8,9,10);
$i = 1;
while($i <= $qtyCount){
  $params['quantity_'.$i] .= $qtyAr[$i];
  $i++;
}

但是当我这样做的时候,最后一个值就不见了。

BTW:qtyCount和qtyAr中的值是错误的。。。只是举个例子。

我会选择一种更简单的方法:

array_walk($qtyAr, function($item, $index) use (&$params) {
    $key = sprintf("quantity_%u", $index);
    $params[$key] = $item;
});

似乎您从错误的索引(1)开始,正如其他人所指出的,$i应该等于0。

您缺少最后一个元素,因为您的非关联数组以0开头,而循环以1开头。这就是为什么foreach工作得更好的原因,因为它可以迭代所有元素。

$qtyAr = array(6,7,8,9,10);
$i = 1;
foreach($qtyAr as $val) {
    $params['quantity_' . $i] = $val;
    $i++;
}