2014-01-30 2 views
0
for($i = 0; $i <= 7; $i++) 
    if(!empty($room_ID.($i+1)) 
    && !empty($date_from.($i+1)) 
    && !empty($date_to.($i+1))) 

У меня есть 8x3 целые .. Id хотели бы знать, если есть способ, чтобы петли через все из них для цикла, как давая $ я до конца целых имен, как так:Loop через несколько целых числа

room_ID1 
room_ID2 
date_from1 
date_from2 
etc.. 

Лучший ответ был бы в php, но я мог бы использовать что угодно!

ответ

0

Вам необходимо заключить переменные переменные в фигурные скобки. Попробуйте это:

<?php 
$room_ID1 = 123; 
$date_from1 = "2014-01-01"; 
$date_to1 = "2014-01-30"; 

for($i = 0; $i <= 7; $i++) 
    if(!empty(${'room_ID'.($i+1)}) 
    && !empty(${'date_from'.($i+1)}) 
    && !empty(${'date_to'.($i+1)})) 
{ 
    echo ${'room_ID'.($i+1)}; 
} 

Подробнее: http://php.net/manual/de/language.variables.variable.php

1

Похоже, вы пытаетесь интерполировать имена переменных во время выполнения. Вы можете сделать это следующим образом:

for($i = 0; $i <= 7; $i++) 
    if(!empty(${'room_ID'.($i+1)}) 
     && !empty(${'date_from'.($i+1)}) 
     && !empty(${'date_to'.($i+1))}) 

В общем, рецепт: ${'base_name' . (derived computation)}

Смотрите также this question

+0

+1 для понимания того, что – krowe

+0

Не уверен, если я получить его, почему поместить переменные между «», ваш первый ответ работал тоже, как это: $ {room_ID. ($ i + 1)} – Caddaile

+0

по умолчанию, голые строки, которые не определены константами, преобразуются в строки (но также выдают предупреждение). Не рекомендуется полагаться на это поведение. например 'test' будет интерпретироваться как строка (' 'test''), если константа' test' не определена –

Смежные вопросы