我刚写了这个,这是将数组添加到预先存在的数组的最有效方法。
$c=4;
$i=1;
$myarray = array();
while($i <= $c):
array_push($myarray, array('key' => 'value'));
$i++;
endwhile;
echo '<pre><code>';
var_dump($myarray);
echo '</code></pre>';
更新:你如何推动关键&amp;值,不创建新数组
所以这array_push($myarray,'key' => 'value');
不是这个array_push($myarray, array('key' => 'value'));
答案 0 :(得分:18)
您的代码有几个可以改进的地方:
分配像4和1这样的幻数是一种不好的做法,而是使用常量。对于这个例子,它当然是矫枉过正,但对于知道和使用仍然很重要。
始终使用花括号,它使代码更具可读性。
这不是while循环的情况,如果你想循环一定次数,总是使用for循环!
您不需要数组推送来向数组添加元素,您可以而且应该使用简写函数。
<强>结果强>:
define('START', 1);
define('END', 4);
$myArray = array();
for ($i = START; $i < END; $i++)
{
$myArray[] = array('item' => '1 items');
}
答案 1 :(得分:5)
我个人会按照以下方式查看您的代码:
$myarray = array();
for($i=0;$i<4;$i++){
$myarray[] = array('item' => '1 items');
}
根据this,array_push的效率低于$myarray[]
答案 2 :(得分:3)
如果你真的只需要从某个索引开始将一个特定值放入数组n次,你可以使用array_fill
:
$myarray = array_fill($i, $c, array('item' => '1 items'));
答案 3 :(得分:2)
您的示例对我来说很好,尽管您很可能会将array_push
函数调用替换为:
$myarray[] = array('item' => '1 items');
“is”是array_push的简写语法。
<强>更新强> 对于关联数组,您只需:
$myarray["item"] = "1 items";
虽然您的示例只是覆盖每次迭代的值。
答案 4 :(得分:-1)
for($i=1; $i < 10; $i++) {
$option[$i] = $i;
}