【问题标题】:Using loops to create arrays使用循环创建数组
【发布时间】:2010-09-21 22:14:39
【问题描述】:

我是 php 的新手,我想知道是否有人可以帮助我使用 for 或 while 循环来创建长度为 10 个元素的数组

【问题讨论】:

  • 啊,美好的过去……如果今天这样问这个问题,用户将被禁止-
  • @user2835653 我希望用户会被问到,“到目前为止你尝试了什么?”而不是立即禁止。至少我会这样处理它。

标签: php arrays loops data-structures


【解决方案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 />";

【讨论】:

  • 通过 $array[] = ...;非常慢。值得在方括号之间的“for”中使用 $i。如果您要归因于大型数据集,与 $array[] 相比,$array[$i] 会给您带来很好的性能提升。
  • 也可以使用 array_push() 函数
  • @I GIVE... 我发现这是不正确的,我运行了基于多达 750,000 次迭代的测试,发现 $array[] 在所有情况下都比 $array[$i] 快(假设差异只有千分之一秒)
【解决方案2】:

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

$array = array();

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

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

我使用这种方法,我发现它更容易浏览一下它的作用。

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

【讨论】:

  • 如果你有 Python 的背景会很容易阅读,但如果你来自 C 风格的语言背景(在语法方面,例如 C++、Java、C#),这看起来对你来说很奇怪。此外,代码看起来效率低下,创建了一个临时数组。
  • 有两个效率低下,一个是使用 foreach 循环和一个 range 语句,其中一个简单的 for 循环就足够了,另一个是使用 array_push 方法,它比 array[] 语句慢 200% ( stackoverflow.com/questions/559844/…)
【解决方案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】:

    我不确定你的目的到底是什么。 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');
    

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-11-13
        • 1970-01-01
        • 2013-01-12
        • 2015-05-25
        • 1970-01-01
        • 2021-09-03
        • 1970-01-01
        • 2012-05-01
        • 2020-07-02
        相关资源
        最近更新 更多