2015-09-04 2 views
0

Я имеющая for петли в foreach петлицикла повторение в течение каждого цикла

static $count=0; 
for($i=$count;$i<$semesters_count;$i++) 
{ 
    echo $array_wam[$i]; 
    $count++; 
} 

здесь $array_wam является массивом некоторых марок. Я печать несколько студента отмечает я получаю первый студент отмечает

first student 
    50.6 

second student 
50.6 60.9 

Я хочу, чтобы показать, как выход

first student 
    50.6 

second student 
60.9 

Здесь петля снова начинается с 0, но я хочу, цикл начинается с тем, где она заканчивается.

ответ

0

Для этого вы должны поставить статический $count=0; перед запуском foreach.

См пример ниже:

static $count=0; 

foreach ($item) 
{ 
    for($i=$count;$i<$semesters_count;$i++) 
    { 
     echo $array_wam[$i]; 
     $count++; 
    } 
} 
+1

Почему? Он будет инициализировать его только в первый раз. – Barmar

+0

спасибо за данный ответ AeJey, но его не придет –

0

Попробуйте это:

for($i = 0; $i < $count_semester; $i++){ 
    echo $array_wam[$i]; 
    } 

Почему вы хотите static $count, если он может петля корыта for цикл? И все равно счетчик вашего $i равен длине вашего $count_semester.

+0

Посмотрите на http://stackoverflow.com/help/how-to-answer –

+0

Пожалуйста, подумайте над редактированием сообщения, чтобы добавить больше объяснений о том, что делает ваш код и почему он решит проблема. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. Также рекомендуется, чтобы вы не отправляли ответ, если это всего лишь предположение. Хороший ответ будет иметь правдоподобную причину, почему он может решить проблему OP. – SuperBiasedMan

0

Проблема в том, что вы не увеличиваете $count, когда достигнете конца цикла for.

Вместо приращением $count внутри цикла, установите его в $i в конце цикла:

static $count = 0; 
for ($i = $count; $i < $semesters_count; $i++) { 
    echo $array_wam[$i]; 
} 
$count = $i; 
+1

пропустил $ in count in forloop –

+0

hi barmar Я попытался с этим кодом, но его не было, предположим, что у меня есть array_wam valus для первого ученика $ i = 0 и 1, а затем следующий ученик для цикла начинается с $ i = 2, и поэтому –

+0

@Nadh Разве это не то, что вы хотите? При запуске второго ученика ваш код повторял «1». – Barmar

1

Я не знаю, если я понять право, что вы просите, но вы пробовали, как это?

for($i=0;$i<$semesters_count;$i++){ 
    echo $array_wam[$i]; 
} 
+0

Это начнется с 0 для каждого ученика вместо текущего места в массиве. – Barmar

+0

Хорошо, я тогда понял неправильно: D – Elemento0

0

Попробуйте это: -

static $count = 0; 

foreach ($item) 
{ 
    $semester_count_total = $semesters_count + $count; 

    for ($i = $count; $i < $semester_count_total; $i++) { 
     echo $array_wam[$i]; 
    } 

    $count = $semester_count_total; 
} 
Смежные вопросы