Forum Webscript.Ru

Программирование => PHP => Тема начата: Xander от 21 Октября 2002, 17:06:25

Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 17:06:25
Вопрос вот в чем: как получить n-ный элемент массива, возвращаемого функцией?
В Perl это делается так же, как и для настоящих массивов, а синтаксис PHP такие вещи как $time = explode(\'|\',$str)[1]  не позволяет. Равно, как и list(NULL,$time) = explode(\'|\',$str)
Кто знает, как это сделать красиво, без введения дополнительных переменных?
Название: n-ный элемент массива?..
Отправлено: tserbis от 21 Октября 2002, 17:31:03
array_slice
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 17:41:43
Warning: Illegal offset type in ... on line 19

$time = array_slice(explode(\'|\',$records[$i]),1,1);

Я дурак, или оно так не работает?
Название: n-ный элемент массива?..
Отправлено: tserbis от 21 Октября 2002, 17:58:02
Похоже, я ошибся.
array_slice - то тоже массив возвращает.
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 18:05:31
Гм. Тогда ждем гуру.
Название: n-ный элемент массива?..
Отправлено: tserbis от 21 Октября 2002, 18:18:31
А без красоты никак:-)
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 18:21:45
Очень даже как: list($ime,$time) = explode(\'|\',$records[$i]);

Но...это же неаккуратно!
:)
Название: n-ный элемент массива?..
Отправлено: Меняздесьдавнонет от 21 Октября 2002, 18:27:16
и за всесь день никто в мануял так и не удосужился заглянуть?
Ну, ждите тогда дальше :-)

По ходу, я стал гуру в 5 лет, как только читать научился...
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 18:36:51
RomikChef, я тебя люблю (NOT GAY), но вот хоть сейчас ты мог сказать, в какой главе мануала надо смотреть?

Я в нем ковырялся, но НЕ НАШЕЛ эту фишку.
Название: n-ный элемент массива?..
Отправлено: Макс от 21 Октября 2002, 19:00:55
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;
?>
Название: n-ный элемент массива?..
Отправлено: Гаррилл от 21 Октября 2002, 19:38:35
Xander
Читаем статью http://www.webscript.ru/stories/02/06/10/7682222
Качаем всё, что там предлагается. Ставим этот winsintax. Качаем мануал с помощью сервиса этой проги (разобраться, что где очень просто). Запускаем маню через Help, лезем в Указатель (закладка такая там есть), пишем "arr" и читаем взахлёб. Потом копируем эту мессагу, идём на форум и отвечаем новым новичкам.
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 21:37:23
Бааальшое спасибо.
Достали, мля, за ламера держать. Прошу больше, мля, мне таких "ценных советов" не давать. У меня есть ман к ПХП (в chm). Я умею читать на английском. Я умею худо-бедно писать программы.

Я задал 1 (один) конкретный вопрос. Если вы знаете ответ - отвечайте, полагаю, что этот ответ может уместиться в одной строке кода. Если не хотите отвечать по существу - молчите лучше в тряпочку, хватит на форум и одного RomikChief\'a.

И если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?
Название: n-ный элемент массива?..
Отправлено: Меняздесьдавнонет от 21 Октября 2002, 21:43:11
Xander
я, может, чего-то не понимаю...
когда я использую какую-то функцию, и она работает не так, как мне надо, я лезу в документацию - посмотреть, какие есть варианты.

Все работает именно так, как ты хотел в первом постинге.
только синтаксис немного другой.

Но я не понимаю, почему я вместо тебя должен лезть в мануал и смотреть его.
Ну вот не понимаю я!
Название: n-ный элемент массива?..
Отправлено: Гаррилл от 21 Октября 2002, 21:55:49
Xander
Цитировать
И если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?

Всё-таки повод. ИМХО.
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 22:09:34
moderated

Теперь итоги:
Из ответивших:
- дал неправильный ответ: 1 человек
- невнимательно прочитал вопрос: 1 человек
- ткнули носом в мануал: 2 человека

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

Как должно выглядеть искомое:
языковая конструкция, аналогичная перловой function(..)[$i],
либо встроенная функция, делающая то же самое.

Вот так.
P.S. если бы я мог найти это в мануале, я бы НЕ СТАЛ спрашивать на форуме, ну это-то понятно?
Название: n-ный элемент массива?..
Отправлено: Меняздесьдавнонет от 21 Октября 2002, 22:12:11
1. невозможно
2. http://www.php.net/list
Название: n-ный элемент массива?..
Отправлено: Xander от 21 Октября 2002, 22:22:29
Итак, правильный ответ был list(,$time) = explode(\'|\',$records[$i]);

Таким образом, постинг, после которого я бы все сразу понял, должен был выглядеть либо так:
Цитировать

list(,$time) = explode(\'|\',$records[$i]);

либо так:
Цитировать

Прочитай повнимательнее мануал к list()


Спасибо всем откликнувшимся.
Название: n-ный элемент массива?..
Отправлено: Меняздесьдавнонет от 21 Октября 2002, 22:32:32
Всегда пожалуйста.
Заходи еще.
Если будут проблемы с mysql_num_rows, или с echo, или с mkdir - мы с удовольствием расскажем, к какой функции тебе надо присмотреться повнимательнее.
Название: n-ный элемент массива?..
Отправлено: Xander от 22 Октября 2002, 00:01:28
Уж как-нибудь и без вас обойдусь...
Название: n-ный элемент массива?..
Отправлено: Гаррилл от 22 Октября 2002, 13:17:28
Xander
Так зачем хамить? Тебе ответили, а ты ещё ругаешь, как капризное дитя. Раз более опытный народ посчитал тебя ткнуть носом, так тыкайся (это сказано не в обиду). Просто надо иногда самому думать. То, что у тебя нет времени - проблема твоя.
Название: n-ный элемент массива?..
Отправлено: Xander от 22 Октября 2002, 13:36:01
Гаррилл, и остальные
Я вас всех уважаю. Но считаю, что тыканье носом должно быть более конкретным. Я полчаса порылся в мануале, после написал на форум. И обрати внимание, в котором по счету ответе, мне сказали, где именно копать. Да, я не заметил одной строчки в самом конце примеров к функции list()...
Но мне же никто об этом не сказал, вы с Ромиком дружно сказали: "Читай мануал".
А по поводу хамства - прочитай еще раз ответы, которые мне давали. Ругань была вполне адекеватна.

Все, не желаю больше поддерживать эту дискуссию. Пусть кто-нибудь, кто не участвовал посмотрит со стороны, и скажет, кто из нас прав больше. Если захочет, конечно.
Название: n-ный элемент массива?..
Отправлено: Гаррилл от 22 Октября 2002, 14:12:29
Xander :beer:
Название: n-ный элемент массива?..
Отправлено: Дмитрий Попов от 22 Октября 2002, 23:19:22
Ну... В такой спор не могу не влезть
Здесь я на стороне Романа и др.

Xander:
Цитировать
если у меня нет времени вычитывать десятки страниц на английском, то это еще не повод для попыток меня ткнуть куда-то носом, а?


Не то, что повод. Здесь Вы так нахамили, что по савнению с этим, Вас жутко хвалили...

Это что же получается, у Вас времени нет, потому другие его должны тратить?

Хамство.