创建具有指定数量的元素的数组

Create an array with a specified number of elements

提问人: 提问时间:11/12/2008 最后编辑:mickmackusa 更新时间:7/21/2022 访问量:107414

问:

我是 php 的新手,我想知道是否有人可以帮助我使用 a or loop 创建一个包含 10 个元素的数组。for()while()

php 数组循环 数据结构 填充

评论

0赞 user2835653 9/28/2020
啊,过去的美好时光......如果今天这样问这个问题,用户就会被禁止——
0赞 crazymatt 10/29/2020
@user2835653我希望用户会被问到,“到目前为止你尝试了什么?”而不是立即被禁止。至少我是这样处理的。

答:

27赞 Owen 11/12/2008 #1
$array = array();
$array2 = array();

// for example
for ($i = 0; $i < 10; ++$i) {
    $array[] = 'new element';
}

// while example
while (count($array2) < 10 ) {
    $array2[] = 'new element';
}

print "For: ".count($array)."<br />";
print "While: ".count($array2)."<br />";

评论

0赞 I GIVE TERRIBLE ADVICE 11/12/2008
通过 $array[] = ...;速度极慢。值得从方括号之间的“for”中$i。$array[$i] 与 $array[] 相比,如果您归因大型数据集,则会很好地提升性能。
0赞 Noah Goodrich 11/12/2008
或者,可以使用 array_push() 函数
3赞 Owen 11/12/2008
@I给...我发现这是不正确的,我运行了一个基于多达 750,000 次迭代的测试,发现 $array[] 在所有情况下都比 $array[$i] 快(假设差异是千分之一秒的问题)
15赞 alex 11/12/2008 #2

循环的另一种方法是......for

$array = array();

foreach(range(0, 9) as $i) {
    $array[] = 'new element';
}

print_r($array); // to see the contents

我使用这种方法,我发现更容易浏览以查看它的作用。

正如 strager 所指出的,它可能更容易读给你听,也可能不容易。他/她还指出,创建了一个临时数组,因此比普通的 for 循环稍微贵一些。这种开销是最小的,所以我不介意这样做。你实施什么取决于你。

评论

0赞 strager 12/17/2008
如果你有 Python 背景,它会很容易阅读,但如果你来自 C 风格的语言背景(语法,例如 C++、Java、C#),这对你来说会看起来很奇怪。此外,代码看起来效率低下,创建了一个临时数组。
0赞 ejectamenta 1/13/2016
有两个低效率,一个是使用 foreach 循环和 range 语句,其中一个简单的 for 循环就足够了,另一个是使用 array_push 方法,它比 array[] 语句慢 200% (stackoverflow.com/questions/559844/...)
6赞 John T 11/12/2008 #3

对于初学者来说,也许更容易理解......

<?php


// for loop
for ($i = 0; $i < 10; $i++) {

$myArray[$i] = "This is element ".$i." in the array";

echo $myArray[$i];

}


//while loop
$x = 0;

while ($x < 10) {

$someArray[$x] = "This is element ".$x." in the array";

echo $someArray[$x];

$x++;
}

?>
4赞 nickf 12/17/2008 #4

我不确定你来这里的目的是什么。PHP 的数组是动态的,这意味着您可以在创建后继续向它们添加元素 - 也就是说,您不需要在开始时定义数组的长度。我假设你想把 10 个任意的东西放在一个数组中。

for 循环:

$arr = array();
for ($i = 0; $i < 10; ++$i) {
    $arr[] = "Element $i";
}

while 循环:

$arr = array();
$i = 10;
while (--$i) {
    $arr[] = "Element $i";
}

通过定义它:

$arr = array("Element 1", "Element 2", "Element 3" ...);

或者,如果您只想要一系列字母或数字:

$arr = range(0, 9);
$arr = range('a', 'j');
1赞 too much php 12/17/2008 #5

最简单的方法是使用 array_fill()

$array = array_fill(0, 10, 'Hello World');

但是你应该知道,PHP数组可以随时调整大小,我从来没有需要创建一定大小的数组。