Array ( [0] => Asus [1] => Dell [2] => Toshiba )
Но если загонять в цикл и выводить по элементам, то ничего не выводит.
for ($k=0;$k<count($$ch);$k++) { echo $$ch[$k]."<br>"; }
Почему так происходит? Или надо как-то преобразовать этот массив? Подскажите пожалуйста.
Спустя 3 минуты, 42 секунды (20.02.2011 - 19:07) quickxyan написал(а):
может попробуй через foreach или while
Спустя 24 секунды (20.02.2011 - 19:08) Dron19 написал(а):
$$ch - это символьная ссылка?
Спустя 3 минуты, 36 секунд (20.02.2011 - 19:11) Dron19 написал(а):
foreach($$ch as $k) {
echo $k."<br>";
}
Спустя 38 секунд (20.02.2011 - 19:12) Dron19 написал(а):
вместо цикла for поставь
Спустя 16 минут, 47 секунд (20.02.2011 - 19:29) Denhell написал(а):
Цитата |
foreach($$ch as $k) { echo $k."<br>"; } |
Так вот что выдает
Asus
Dell
Toshiba
Warning: Invalid argument supplied for foreach() in W:\home\localhost\www\hainet\article.php on line 66
Warning: Invalid argument supplied for foreach() in W:\home\localhost\www\hainet\article.php on line 66
Что за ошибки такие? На 66 строке находится
foreach($$ch as $k) {
Спустя 3 минуты, 14 секунд (20.02.2011 - 19:32) Dron19 написал(а):
кинь сюда весь свой код
Спустя 1 минута, 33 секунды (20.02.2011 - 19:34) Dron19 написал(а):
я на 10 минут отойду от компа, приду, если еще не помогут, помогу
Спустя 7 минут, 10 секунд (20.02.2011 - 19:41) Invis1ble написал(а):
Denhell
Цитата |
Warning: Invalid argument supplied for foreach() in W:\home\localhost\www\hainet\article.php on line 66 |
ошибки выдает, изза того что какая-то переменная, которую ты передеаешь в цикл - не массив
нужно делать проверку, например такую:
if (is_array($$ch))
foreach ($$ch as $v)
echo $v . '<br />';
Спустя 3 минуты, 9 секунд (20.02.2011 - 19:44) T1grOK написал(а):
Это из-за вашей-массивно-символьной ссылки. Делайте как нужно и никаких ошибок не будет
foreach($ch as $k) {
echo $k."<br>";
}
Спустя 3 минуты, 27 секунд (20.02.2011 - 19:47) Dron19 написал(а):
я создал символьную ссылку от массива и все работает.
T1grOK - символьная ссылка тут не при чем
Вот так надо создавать символьные ссылки и применять.
T1grOK - символьная ссылка тут не при чем
Вот так надо создавать символьные ссылки и применять.
$arr = array('toshiba','dell','asus');
$ch = "arr";
foreach($$ch as $k) {
echo $k."<br>";
}
Спустя 45 секунд (20.02.2011 - 19:48) Dron19 написал(а):
или ты просто случайно добавил лишний $
Спустя 14 минут, 55 секунд (20.02.2011 - 20:03) Denhell написал(а):
Invis1ble
Спасибо, с проверкой ошибок нет
Dron19
Благодарю за помощь. Но знак $ я не случайно поставил. Дело в том, что в на одной странице php я создаю форму и там формирую произвольные переменные, название которых может быть различно. Например $filter_1; $filter_7 и они являются массивами. Затем, чтобы методом post передать я использую массив $name_filters, в котором хранятся названия переменных (не значения).
Спасибо, с проверкой ошибок нет
if (is_array($$ch))И выдает как надо
foreach ($$ch as $v)
echo $v . '<br />';
Asus
Dell
Toshiba
Dron19
Благодарю за помощь. Но знак $ я не случайно поставил. Дело в том, что в на одной странице php я создаю форму и там формирую произвольные переменные, название которых может быть различно. Например $filter_1; $filter_7 и они являются массивами. Затем, чтобы методом post передать я использую массив $name_filters, в котором хранятся названия переменных (не значения).
$name_filters = $_POST['name_filters']; // преедаю названия переменных
$name_filters = explode(", ",$name_filters); //преобразую строку в массив
for ($i=0;$i<count($name_filters); $i++) {
$ch = $name_filters[$i]; //имя i-й переменной
$$ch = $_POST[$ch]; // вытягиваю через post i-ю переменную
if (is_array($$ch))
foreach ($$ch as $v)
echo $v . '<br />';
}
Спустя 4 минуты, 8 секунд (20.02.2011 - 20:07) Invis1ble написал(а):
Denhell
Цитата |
на одной странице php я создаю форму и там формирую произвольные переменные, название которых может быть различно. Например $filter_1; $filter_7 и они являются массивами. Затем, чтобы методом post передать я использую массив $name_filters, в котором хранятся названия переменных (не значения). |
имхо, кривая реализация. передавай просто данные в массиве, а потом работай непосредственно с этим массивом
Спустя 1 час, 23 минуты, 17 секунд (20.02.2011 - 21:30) Dron19 написал(а):
$$ch = $_POST[$ch]; - $$ - это по синтаксису должно означать символьную ссылку, которую если изменить, то и изменится переменная на которую указывает эта ссылка
Спустя 12 часов, 21 минута, 28 секунд (21.02.2011 - 09:52) linker написал(а):
От так
$ch = &$_POST[$ch];это делается.