![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Muerto |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Никак не пойму почему выходит Array ( [0] => 0 [1] => 2 [2] => 3 [3] => x [4] => 4 ) СОбственно первое я понимаю, array_splice индексы убивает поэтому идет с нуля... array_merge вставляет в конец, поэтому x у нас не в начале... но откуда 4ока то не пойму... результат array_slice($array, 3) будет Array ( [0] => 0 [1] => 2 [2] => 3 ) Вопрос даже упростить можно... не понял почему
выдает Array ( [0] => x [1] => 4 ) Я что то упускаю... |
||||
|
|||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: нет Всего: 112 |
Не понял, что вас не устраивает. Все выполняется как положено.
array_slice($array, i, j) возвращает массив, сформированный из массива $array в первом параметре, начиная с элемента за индексом i и с количеством элементов, равным j. Если j опущено (как у вас), то копируются все элементы до конца массива $array. |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Amphiluke, Извините но думаю что вы не правы, я читая ваши слова понял где моя ошибка была!
Откуда X? все очень просто... в тот час как функция array_slice($array, 3) вернула бы 1 => 0, 2, 3 а она это и делает, в данном случае она выдаст 4... А почему? Потому что return От array splice дает то что осталось, а не сам $array $x=array_slice($array, 3); По моей теории $x=array(0=>4) А если делать print_r $array то будет 1 => 0, 2, 3 ВОт они и фокусы Это из серии strcmp если оба значения равны, то возвращает 0, логика про эту функцию и не знала Это сообщение отредактировал(а) Muerto - 3.10.2010, 19:25 |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: нет Всего: 112 |
Возможно, я где-то недопонял вас. Но до меня до сих пор все еще не дойдет, почему это array_slice($array, 3) должна, по-вашему, вернуть 1 => 0, 2, 3? У меня такой код в чистом виде
выдает Array ( [0] => 4 ). И это выглядит очень даже логичным… Не? |
|||
|
||||
| Muerto |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Amphiluke,
Сравните
и
И вы поймете о чем я В первом варианте в нашем массиве будет 4, а в втором, все кроме 4... Функця array_slice($array, 3); аналог серии array_pop Pop возвращает элемент который был убран, и эта функция тоже... В тот час как массив на который мы делали поп потерял последний элемент Это сообщение отредактировал(а) Muerto - 3.10.2010, 20:46 |
||||
|
|||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |