2013-05-01 2 views
-1

Я сделал следующий «foreach», который мне нужно сделать цикл 10 раз, затем остановится. Я не могу использовать команду for.Как я могу получить цикл Foreach, чтобы повторить 10 раз?

<?php 
$x=array("Seb","Ginna","Shane","Guy","Jackie","Frances","John","Alec","Jon","Sam","Chris","Paula"); 
foreach ($x as $value) 
{ 
echo $value . ","; 
} 
?> 

Prvious этого я использовал:

<?php 
$theNames = array('Seb', 'Ginna', 'Shane', 'Guy', 'Jackie', 'Frances', 'John', 'Alec', 'Jon', 'Sam', 'Chris', 'Paula'); 

$toOutput = implode(",", $theNames); 

for ($i=0; $i < 10; $i++) { 
print $toOutput."<br/>"; 
} 
?> 

Предыдущий код работает так, как я хочу его, однако мне это нужно для работы в цикле Еогеасп

+4

«Я не могу использовать для» - почему на земле нет? – Mat

+2

Пахнет домашней работой. – Dan

+2

Вы в середине теста на собеседование? ;-) – raidenace

ответ

8

for? Я не вижу for.

foreach (range(1, 10) as $i) { 
    foreach ($names as $name) { 
     echo $name . ', '; 
    } 
    echo '<br />'; 
} 

$names = array("Seb", "Ginna", "Shane", "Guy", "Jackie", "Frances", "John", "Alec", "Jon", "Sam", "Chris", "Paula"); 
foreach (range(1, 10) as $i) { 
    foreach ($names as $name) { 
     echo $name . ', '; 
    } 
    echo '<br />' . PHP_EOL; 
} 

И теперь для выхода:

Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
Seb, Ginna, Shane, Guy, Jackie, Frances, John, Alec, Jon, Sam, Chris, Paula, <br /> 
+0

Это не повторяет мой массив 10 раз, что я ищу – user1839483

+1

@ user1839483 Ммм, да, это так; обновление с выходом. – Dan

+0

Благодарим вас и мои пристрастия, я пропустил часть кода, поэтому он не работал. Теперь я могу видеть, что мне нужно будет ввести для этого в следующий раз. Это самообучающееся PHP-приложение сложнее, чем я надеялся lol – user1839483

5

Для. Каждый. Он перемещается по каждому объекту в массиве. Вы можете обойти это и считать так же, как цикл for, но на самом деле вы должны просто использовать его.

+0

не могли бы вы привести пример – user1839483

+0

Мне жаль, что это была домашняя работа lol. Я пытаюсь самостоятельно изучить php – user1839483

2

Вы можете использовать PHP range(), чтобы создать массив из 10 элементов, то используйте Еогеасп цикл следующим

$counter = range(1, 10); 
    foreach($counter as $v) 
    echo implode(',', $x) . '<br />'; 

implode()присоединяется все элементы массива с заданным клеем

+0

Это работает только в том случае, если массив имеет числовую клавишу. –

+0

Да, конечно, но это еще не полный ответ. Он будет разбит на ассоциативные массивы. –

+0

@ Ответ Pier-LucGendreau обновлен радикально – Ejaz

3

Этот код должен это сделать :

<?php 

$i = 0; 
$x = array("Seb","Ginna","Shane","Guy","Jackie","Frances","John","Alec","Jon","Sam","Joe","Chris","Paula"); 
foreach ($x as $value) 
{ 
    if ($i++ > 9) break; 
    echo $value . ","; 
} 
+0

У вас синтаксическая ошибка. – Ejaz

+0

u пропустил; off $ i = 0 – user1839483

+0

Oopsie, спасибо за исправление :-) –

0

Я думаю, вы, jus t хочу slice of the array.

$theNames = array('Seb', 'Ginna', 'Shane', 'Guy', 'Jackie', 'Frances', 'John', 'Alec', 'Jon', 'Sam', 'Chris', 'Paula'); 

$names = array_slice($theNames, 0, 10); 

print implode(",", $names) . "\n<br>"; 
0

Попробуйте это, он печатает все элементы вашего массива:

обновлено:

$x=array("Seb","Ginna","Shane","Guy","Jackie","Frances","John","Alec","Jon","Sam‌​","Chris","Paula"); 
$i=0; 
foreach($x as $value){ 
if($i<10) 
{ 
    echo $value.', '; 
    $i++; 
} 
} 
+0

Это использует команду «для». Я хочу использовать «foreach» – user1839483

+0

@ userR2D2. Вы неправильно поняли вопрос. Он хочет использовать 'foreach()', явно заявляя ** NOT ** a 'for()', чтобы добиться максимального * максимального ** ** **. Я бы удалил этот ответ, прежде чем люди спустились. – Jimbo

+0

использовать его: $ x = массив («Seb», «Ginna», «Shane», «Guy», «Jackie», «Frances», «John», «Alec», «Jon», «Sam», "Крис", "Паула"); $ i = 0; foreach ($ x as $ value) { if ($ i <10) { echo $ value. ','; $ i ++; } } – r2d3

0
$y=array("Seb","Ginna","Shane","Guy","Jackie","Frances","John","Alec","Jon","Sam","Chris","Paula"); 
for($x=0;$x<=10;$x++) 
{ 
    foreach ($y as $value) 
    { 
    echo $value . ","; 
    } 
    echo "<br>"; 
} 
0

Как об этом

//start your count at 1 
$count = 1; 

//start your loop 
foreach ($array as $something) { 

    //when your count is at 10 "continue" is to go to the end of the loop 
    if ($count == 10) { 
     continue; 
    } 

    //this will add the next integer 
    $count++; 

    //end your loop 
} 
Смежные вопросы