在循环中使用键值对增加php数组

时间:2013-08-16 21:42:37

标签: php arrays loops

如何在循环中使用键值对增加(添加更多值)数组。

$field['choices'] = array(
   'custom' => 'My Custom Choice'
 );

我想说我想从另一个阵列中再添加三个选项吗?

我希望实现的输出:

$field['choices'] = array(
  'custom1' => 'My Custom Choice1'
  'custom2' => 'My Custom Choice2'
  'custom3' => 'My Custom Choice3'
  'custom4' => 'My Custom Choice4'
);

5 个答案:

答案 0 :(得分:2)

迭代并将索引连接到密钥中的前缀:

for ($i = 2; $i <= 4; $i++) {
    $field['choices']['custom' . $i] = 'My Custom Choice' . $i;
}

答案 1 :(得分:0)

您可以使用array functions进行排序或合并。

或者你可以这样做:

$field['choices']['custom'] = 'My Custom Choice';
$field['choices']['custom2'] = 'My Custom Choice';
$field['choices']['custom3'] = 'My Custom Choice';
$field['choices']['custom4'] = 'My Custom Choice';

答案 2 :(得分:0)

您可能希望使用 array_merge()

从手册:

array array_merge ( array $array1 [, array $... ] )
     

将一个或多个数组的元素合并在一起,以便显示值   一个附加到前一个的末尾。它返回   结果数组。

     

如果输入数组具有相同的字符串键,则后面的值   该密钥将覆盖前一个密钥。但是,如果是数组   包含数字键,后面的值不会覆盖原始值   值,但会附加。

答案 3 :(得分:0)

正如您在问题中所述:

$field['choices'] = array(
   'custom' => 'My Custom Choice'
 );

所以:

$array = $field['choices'];

简化以下示例:

$otherArray = range(1, 3); // another array with 3 values

$array += $otherArray; // adding those three values (with _different_ keys)

完成。带数组的+运算符称为union。您可以在此处找到它:

因此,只要您要添加的其他数组与添加它的一个数组相比有三个不同的键,就可以使用+运算符。

答案 4 :(得分:0)

以下是我将用于将$otherArray值添加到自定义增量数组键值

的代码
if (count($field['choices']) === 1) {
    $field['choices']['custom1'] = $field['choices']['custom'];
    unset($field['choices']['custom'];
    $i = 2;
} else {
    $i = count($field['choices']) + 1;
}//END IF
foreach ($otherArray as $key => $val) {
    $field['choices']['custom' . $i] =  $val;//Where val is the value from the other array
    $i++;
}//END FOREACH LOOP