DWWEB.RU
СКРИПТЫ

array_splice удаление из массива, замена в массиве

Сегодня у нас на рассмотрении функция array_splice, я не буду повторять, что пишут в долбаных учебниках про эту функцию, вы можете поискать о array_splice в интернете!

Единственное. Что можно процитировать это :

array_splice -- Удалить последовательность элементов массива и заменить её другой последовательностью И далее я должен это сказать!
Первое : посмотрите, что вам выдаст поисковик на тему - array_splice!? Это будет перепечатка одного текста! Хочу спросить!

Да что с вами такое со всеми!? Для кого вы это перепечатываете!? Если я один раз увидел этот долбаный текст, то увидев его второй раз -я просто закрою страницу!

Второе : Для кого пишут эти долбаные справочники и делают сайты. Прочитав такую статью – тебе остается еще раз 20 прочитать её заново и почесать репу – БЛ”ТЬ – ЧЁ вы здесь понаписали !?

Если я знаю, то мне не нужен будет ваш сайт! А если я не знаю, то мне надо рассказать на примерах, как работает эта функция, чтобы я с первого раза понял, а не продолжал чесать свою репу! И чтобы я не начал искать уже в поисковике, как же работает данная функция!

Или может я такой тупой, что нифигнга не понимаю этот язык на котором пишут эти справочники!?

Вы не представляете, в каком я бешенстве нахожусь из-за всех этих сайтов – уродов! И таких же владельцев…

Конечно! Это все классно, но не думаю, что вы собираетесь в этом во всем разбираться, а хотите получить сразу вывод…

Как работает функция array_splice примеры

Давайте попробуем разобраться. Как же работает функция array_splice. Для этого нам понадобится массив, например вот такой.. с ним и будем проводить манипуляции!

$array = array("раз", "два", "три", "четыре", "пять" , "шесть" , "семь");

И прменим к ней функцию

array_splice($array, 0, 0, "привет");

Результат:

Array

(

[0] => привет

[1] => раз

[2] => два

[3] => три

[4] => четыре

[5] => пять

[6] => шесть

[7] => семь

)

Как видим, что наше слово "привет" попало в нулевую ячейку массива.


Первый ноль, после массива в функции называется offset давайте прибавим единицу и посмотрим, что произойдет…


array_splice($array, 1, 0, "привет");

Результат:

Array

(

[0] => раз

[1] => привет

[2] => два

[3] => три

[4] => четыре

[5] => пять

[6] => шесть

[7] => семь

)

Как мы здесь видим, что наш массив изменился, функция array_splice сработала таким образом, что поставила наше слово привет между нулевой и первой ячейкой


Теперь увеличим offset еще на единицу и посмотрим, как сработает наша функция array_splice

array_splice($array, 2, 0, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => привет

[3] => три

[4] => четыре

[5] => пять

[6] => шесть

[7] => семь

)

Далее мы видим, что функция сработала ожидаемо, сдвинув ячейку 2 и поместив в неё наше слово привет

И последнее, например нам понадобится слово привет поставить в самый конец массива..

Надо посчитать количество ячеек массива и поставить эту переменную в offset

array_splice($array, count(array), 0, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => шесть

[6] => семь

[7] => привет

)

Вывод №1
Если мы меняем offset, и оставляем length (второе число в функции array_splice) = 0, то array_splice поставит в ту ячейку, номер которой указан в offset, а все остальные ячейки сдвинет на +1


Изменее offset в функции array_splice в сторону уменьшения length = 0

array_splice($array, -1, 0, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => шесть

[6] => привет

[7] => семь

)

array_splice($array, -2, 0, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => привет

[6] => шесть

[7] => семь

)

array_splice($array, -3, 0, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => привет

[5] => пять

[6] => шесть

[7] => семь

)

Вывод №2

При изменении offset в сторону уменьшения "- 1" и length = 0, отсчитает от конца столько, чему равно offset и сдвинет все ячеки с этого занчения на +1 и вставит туда replacement(привет)




Length boffset в array_splice отрицательные

array_splice($array, -1, -1, "привет");

=== array_splice($array, -1, 0, "привет");

=== array_splice($array, -1, -2, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => шесть

[6] => привет

[7] => семь

)

array_splice($array, -2, -1, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => привет

[6] => семь

)

array_splice($array, -3, -1, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => привет

[5] => семь

)

array_splice($array, -4, -1, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => привет

[4] => семь

)

array_splice($array, -1, -2, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => шесть

[6] => привет

[7] => семь

)

array_splice($array, -2, -2, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => привет

[6] => шесть

[7] => семь

)

array_splice($array, -3, -2, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => четыре

[4] => привет

[5] => шесть

[6] => семь

)

array_splice($array, -4, -2, "привет");

Результат:

Array

(

[0] => раз

[1] => два

[2] => три

[3] => привет

[4] => шесть

[5] => семь

)

Вывод №3

Для вывода № 3 пришлось проделать чуть больше работы – и у нас получилось, что:

1. Если offset и Length отрицательные и Length(-3) меньше offset(-2) или они равны дург дургу, то они все будут вести себя как offset = отрицательное любое число и Length = 0
Непонятно!? Ахренеть как не понятно! например

Но только до тех пор, пока offset(-3) меньше чем Length(-2)! И да 0 уже в первом пункте описан

Тогда:


2. Отступаем offset от конца и оставляем Length

Например :

array_splice($array, -5, -2, "привет");

Отсчитываем 5 от конца - это слеш "/" и оставляем 2 это ** с конца

$array = array("раз", "два", /"три", /"четыре", /"пять" , **/"шесть" , **/"семь");

И получаем...

Array

(

[0] => раз

[1] => два

[2] => привет

[3] => шесть

[4] => семь

)


И если в этом случае length положительный, то отчие, что отсчет будет от offset

Например :

array_splice($array, -5, 2, "привет");

Отсчитываем 5 от конца - это слеш "/" и удаляем 2 это ** с offset

$array = array("раз", "два", **/"три", **/"четыре", /"пять" , /"шесть" , /"семь");

И получаем...

Array

(

[0] => раз

[1] => два

[2] => привет

[3] => пять

[4] => шесть

[5] => семь

)


Изменее length в функции array_splice в сторону увеличения

Следующим нашим шагом будет изменение length в функции array_splice при нулевом offset

array_splice($array, 0, 1, "привет");

Результат:

Array

(

[0] => привет

[1] => два

[2] => три

[3] => четыре

[4] => пять

[5] => шесть

[6] => семь

)

array_splice($array, 0, 2, "привет");

Результат:

Array

(

[0] => привет

[1] => три

[2] => четыре

[3] => пять

[4] => шесть

[5] => семь

)

Вывод №2

При изменении length в сторону увеличения + 1 количество ячеек будет удалено с самого начала, с нулевой ячейки на величину length и все удаленное будет заменено на replacement(привет)


Изменее length в функции array_splice в сторону уменьшения

Следующим нашим шагом будем уменьшать на 1 и посмотрим, как будет вести наша функция…

array_splice($array, 0, -1, "привет");

Результат:

Array

(

[0] => привет

[1] => семь

)

array_splice($array, 0, -2, "привет");

Результат:

Array

(

[0] => привет

[1] => шесть

[2] => семь

)

array_splice($array, 0, -3, "привет");

Результат:

Array

(

[0] => привет

[1] => пять

[2] => шесть

[3] => семь

)

Вывод №3

При изменении length в сторону уменьшения - 1 количество ячеек будет оставлено , с конца на величину length, а все остальное будет замено на replacement(привет)


Все вариации работы функции array_splice

Ну и давайте сделаем общий вывод...

1.array_splice($array, 1, 0, "привет");// поставит replacement(привет) в ячейку №1 - остальное отодвинет на + 1
2.array_splice($array, -1, 0, "привет");//отступит от последней ячейки 1 отодвинет все отступленное на + 1
3.array_splice($array, -1, 0, "привет"); === array_splice($array, -1, -1, "привет"); === array_splice($array, -1, -2, "привет"); // если offset === length, или offset < length то они ведут себя как в пункте 2.
4.array_splice($array, -3, -2, "привет"); // Отступаем 3 от конца оставляем 2 отчет с конца
5.array_splice($array, -3, 2, "привет"); // Отступаем 3 от конца удаляем 2 отчет от offset

Ну и короче…сам охреневаю над этим всем! Как это все можно понять и запомнить!?

Не забудь !
Оставить комментарийCOMMENTS+
Сообщений пока нет - Вы можете стать первым
BBcode
нажмите, чтобы загрузить аватар
Загрузить свой аватар(max ширина, высота = 100px) ( как это работает)

Закрыть
+ =
Подписаться
Теги:
array_spliceпримеры array_spliceкак работает array_splice

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…) Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2019