Использование циклов для создания массивов - PullRequest
20 голосов
/ 12 ноября 2008

Я очень новичок в php, и мне было интересно, может ли кто-нибудь помочь мне использовать цикл for или while для создания массива длиной 10 элементов

Ответы [ 5 ]

23 голосов
/ 12 ноября 2008
$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 />";
13 голосов
/ 12 ноября 2008

Другой подход к циклу for будет ...

$array = array();

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

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

Я использую этот метод, мне кажется, что проще посмотреть, чтобы увидеть, что он делает.

Как указывал strager , вам может быть или не быть легче читать его. Он / она также указывает, что создается временный массив, и поэтому он немного дороже, чем обычный цикл for. Эти накладные расходы минимальны, поэтому я не против сделать это таким образом. То, что вы реализуете, зависит от вас.

4 голосов
/ 12 ноября 2008

немного легче понять для начинающего, может быть ...

<?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++;
}

?>
3 голосов
/ 17 декабря 2008

Я не уверен, что именно ваша цель здесь. Массивы PHP являются динамическими, что означает, что вы можете продолжать добавлять элементы к ним после их создания - то есть вам не нужно определять длину массива в начале. Я предполагаю, что вы хотите поместить в массив 10 произвольных вещей.

для цикла:

$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 голос
/ 17 декабря 2008

Самый простой способ - использовать array_fill():

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

Но вы должны знать, что размеры PHP-массивов можно изменить в любое время, когда вам захочется, мне никогда не приходилось создавать массив определенного размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...