Сбросить ключи массива в PHP

Делал я тут одну фиговину на PHP и столкнулся с тем (что в общем-то логично и правильно), что после того, как над массивом поработает функция explode, и мы повырезаем оттуда пустые, к примеру, элементы то ключи в нём остаются старые.

Ну к примеру. Есть у вас путь к папке: /home/user/folder

Делаем:

  1. <?php
  2. $str = “/home/user/folder”;
  3. $array = explode(“/”,$str);
  4. var_dump($array);

И что мы видим?

array(4) { [0]=> string(0) “” [1]=> string(4) “home” [2]=> string(4) “user” [3]=> string(6) “folder” }

И нам надо получить нулевым элементом – первую папку. Если сделаем unset($array[0]) получим пронумерованный с единицы массив. В цикле прогонять два массива? Как-то лень. Решение пришло внезапно. Не уверен насчёт его правильности, но вот оно:

  1. <?php
  2. $str = “/home/user/folder”;
  3. $array = explode(“/”,$str);
  4. unset($array[0]);
  5. var_dump($array);
  6. $array = array_merge(array(),$array);
  7. var_dump($array);
  8. ?>

Ну и собственно результат:

array(3) { [1]=> string(4) “home” [2]=> string(4) “user” [3]=> string(6) “folder” }

array(3) { [0]=> string(4) “home” [1]=> string(4) “user” [2]=> string(6) “folder” }

Читайте также:

комментария 3

  1. dhjk:

    молодец. пустой массив в array_merge можно не подавать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *