2013-12-13 4 views
0

Возьмите, например, URL-адрес ниже. Есть 3 получить переменные, которые имеют такое же имя для последнего письмаПолучить Получить данные с переменной Получить имя

http://foo.com/foo.php?lala1=pie&lala2=cake&lala3=cobler 

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

for ($x=0; $x<=$totalrepeats; $x++) 
{ 
echo $_get['lala$x']; 
} 

Я надеюсь, что это делает какой-то смысл.

+0

'Я решил попробовать this' - ... и? Что случилось? (Подсказка: супер-глобалы должны быть в верхнем регистре: '$ _GET'.) –

+0

Вы должны остановить это безумие и использовать массивы. : P Если вы назвали свои поля типа 'lala [1]', 'lala [2]' и т. Д., PHP автоматически собрал бы их в массив, который вы могли бы использовать как '$ _GET ['lala']' и keyed по материалам в скобках. – cHao

ответ

2

Попробуйте что-то вроде этого:

for ($x=1; $x<=max_limit; $x++) 
{ 
echo $_GET["lala$x"]; 
} 

начала цикла с 1 не равна нулю.

+0

Спасибо за помощь, ребята, я действительно пробовал это, кроме того, что я делал $ _get вместо $ _GET Я не могу поверить, что совершил эту ошибку. Также я начинал с 0, когда это должно было быть 1. Спасибо еще раз – Radagast

2

Если это конкатенация, не лучше ли просто сделать следующее?

echo $_GET['lala'.$x]; 
+1

Он в основном сделал то же самое. Переменные распознаются внутри строки, если я не ошибаюсь. –

+1

Почему heck downvote? «blabla $ x» не будет работать. Вам нужно «» для этого –

+0

Извините, что я только что вставил его, чтобы поместить ошибку строки, не прочь за get ... – Charline

1

Почему бы не получить всю информацию и исключить ваш цикл?

foreach ($_GET as $thisget) { 
    echo $thisget; 
} 
0

это может помочь

$arr=array(1,2,3,4,1,1,1,1); 
      $secondarr= array_unique($arr); 
      foreach($secondarr as $value) 
      { 
       $newarr= array_keys($arr,$value); 
       echo 'there are'.count($newarr).' enteries for '.$value.'<br>'; 
      } 
Смежные вопросы