Forum Webscript.Ru
Программирование => PHP => Тема начата: Xander от 21 Октября 2002, 17:06:25
-
Вопрос вот в чем: как получить n-ный элемент массива, возвращаемого функцией?
В Perl это делается так же, как и для настоящих массивов, а синтаксис PHP такие вещи как $time = explode(\'|\',$str)[1] не позволяет. Равно, как и list(NULL,$time) = explode(\'|\',$str)
Кто знает, как это сделать красиво, без введения дополнительных переменных?
-
array_slice
-
Warning: Illegal offset type in ... on line 19
$time = array_slice(explode(\'|\',$records[$i]),1,1);
Я дурак, или оно так не работает?
-
Похоже, я ошибся.
array_slice - то тоже массив возвращает.
-
Гм. Тогда ждем гуру.
-
А без красоты никак:-)
-
Очень даже как: list($ime,$time) = explode(\'|\',$records[$i]);
Но...это же неаккуратно!
:)
-
и за всесь день никто в мануял так и не удосужился заглянуть?
Ну, ждите тогда дальше :-)
По ходу, я стал гуру в 5 лет, как только читать научился...
-
RomikChef, я тебя люблю (NOT GAY), но вот хоть сейчас ты мог сказать, в какой главе мануала надо смотреть?
Я в нем ковырялся, но НЕ НАШЕЛ эту фишку.
-
Xander
а чем плох вариант:
$ar = exlplode(...)
$var = $ar[$n];
???
Или вот :) :
$a="aaa|bbb|ccc|dd|eee|sss";
$n = 4;
eval("list(".(str_repeat(" ,", $n))." \\$aa) = explode(\\"|\\", \\$a);");
echo $aa;
?>
-
Xander
Читаем статью http://www.webscript.ru/stories/02/06/10/7682222
Качаем всё, что там предлагается. Ставим этот winsintax. Качаем мануал с помощью сервиса этой проги (разобраться, что где очень просто). Запускаем маню через Help, лезем в Указатель (закладка такая там есть), пишем "arr" и читаем взахлёб. Потом копируем эту мессагу, идём на форум и отвечаем новым новичкам.
-
Бааальшое спасибо.
Достали, мля, за ламера держать. Прошу больше, мля, мне таких "ценных советов" не давать. У меня есть ман к ПХП (в chm). Я умею читать на английском. Я умею худо-бедно писать программы.
Я задал 1 (один) конкретный вопрос. Если вы знаете ответ - отвечайте, полагаю, что этот ответ может уместиться в одной строке кода. Если не хотите отвечать по существу - молчите лучше в тряпочку, хватит на форум и одного RomikChief\'a.
И если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?
-
Xander
я, может, чего-то не понимаю...
когда я использую какую-то функцию, и она работает не так, как мне надо, я лезу в документацию - посмотреть, какие есть варианты.
Все работает именно так, как ты хотел в первом постинге.
только синтаксис немного другой.
Но я не понимаю, почему я вместо тебя должен лезть в мануал и смотреть его.
Ну вот не понимаю я!
-
Xander
И если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?
Всё-таки повод. ИМХО.
-
moderated
Теперь итоги:
Из ответивших:
- дал неправильный ответ: 1 человек
- невнимательно прочитал вопрос: 1 человек
- ткнули носом в мануал: 2 человека
Что было нужно:
способ выделить любой элемент массива, возвращаемого функцией, без использования промежуточных переменный.
Как должно выглядеть искомое:
языковая конструкция, аналогичная перловой function(..)[$i],
либо встроенная функция, делающая то же самое.
Вот так.
P.S. если бы я мог найти это в мануале, я бы НЕ СТАЛ спрашивать на форуме, ну это-то понятно?
-
1. невозможно
2. http://www.php.net/list
-
Итак, правильный ответ был list(,$time) = explode(\'|\',$records[$i]);
Таким образом, постинг, после которого я бы все сразу понял, должен был выглядеть либо так:
list(,$time) = explode(\'|\',$records[$i]);
либо так:
Прочитай повнимательнее мануал к list()
Спасибо всем откликнувшимся.
-
Всегда пожалуйста.
Заходи еще.
Если будут проблемы с mysql_num_rows, или с echo, или с mkdir - мы с удовольствием расскажем, к какой функции тебе надо присмотреться повнимательнее.
-
Уж как-нибудь и без вас обойдусь...
-
Xander
Так зачем хамить? Тебе ответили, а ты ещё ругаешь, как капризное дитя. Раз более опытный народ посчитал тебя ткнуть носом, так тыкайся (это сказано не в обиду). Просто надо иногда самому думать. То, что у тебя нет времени - проблема твоя.
-
Гаррилл, и остальные
Я вас всех уважаю. Но считаю, что тыканье носом должно быть более конкретным. Я полчаса порылся в мануале, после написал на форум. И обрати внимание, в котором по счету ответе, мне сказали, где именно копать. Да, я не заметил одной строчки в самом конце примеров к функции list()...
Но мне же никто об этом не сказал, вы с Ромиком дружно сказали: "Читай мануал".
А по поводу хамства - прочитай еще раз ответы, которые мне давали. Ругань была вполне адекеватна.
Все, не желаю больше поддерживать эту дискуссию. Пусть кто-нибудь, кто не участвовал посмотрит со стороны, и скажет, кто из нас прав больше. Если захочет, конечно.
-
Xander :beer:
-
Ну... В такой спор не могу не влезть
Здесь я на стороне Романа и др.
Xander:
если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?
Не то, что повод. Здесь Вы так нахамили, что по савнению с этим, Вас жутко хвалили...
Это что же получается, у Вас времени нет, потому другие его должны тратить?
Хамство.