2015-04-18 2 views
1

$ внутр массивPHP - определить последовательные номера

$noofformats = count($data['formats']); 
for($x = 0; $x < $noofformats; $x++){ 
    echo $select = "<option value=\"" . $x . "\">" . $ext[$x] . "</option>"; 
} 

Когда я запускаю этот скрипт я получаю желаемый результат. Результат 1:

<option value="0">webm</option><option value="1">m4a</option> and so on..... 

Это работает, потому что вторит результат каждый раз, когда он работает, так что я получаю строку с каждым значением $ noofformat возможно. Но я хочу определить $ select в качестве результата, показанного выше. Что происходит функция каждый раз в цикле более новый результат определяется вместо того, чтобы быть добавлены к предыдущему значению, в результате чего только последнее значение

<option value="33">mp4</option> 

Я желаю

echo $select; 

дать результат, как результата 1

ответ

2

Что происходит прямо сейчас, так что каждая итерация, $select получает перезапись. Вы можете постоянно сцепить строки разметки, а затем, наконец, эхо в конце:

$noofformats = count($data['formats']); 
for($x = 0; $x < $noofformats; $x++){ 
    $select .= "<option value=\"" . $x . "\">" . $ext[$x] . "</option>"; 
     //^continually concatenate values while the loop is running 
} 

echo $select; 
+0

Спасибо за ответ так быстро: D –

+0

@KaziLotus да вы могли бы просто добавить оператор конкатенации, чтобы добавить каждая строка в него вместо того, чтобы переписывать ее на каждую итерацию – Ghost

1

Использование

$noofformats = count($data['formats']); 
for($x = 0; $x < $noofformats; $x++){ 
    echo $select .= "<option value=\"" . $x . "\">" . $ext[$x] . "</option>"; 
} 
Смежные вопросы