Сбросить ключи массива в 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 можно не подавать

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

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