Сбросить ключи массива в PHP
Делал я тут одну фиговину на PHP и столкнулся с тем (что в общем-то логично и правильно), что после того, как над массивом поработает функция explode, и мы повырезаем оттуда пустые, к примеру, элементы то ключи в нём остаются старые.
Ну к примеру. Есть у вас путь к папке: /home/user/folder
Делаем:
- <?php
- $str = “/home/user/folder”;
- $array = explode(“/”,$str);
- var_dump($array);
И что мы видим?
array(4) { [0]=> string(0) “” [1]=> string(4) “home” [2]=> string(4) “user” [3]=> string(6) “folder” }
И нам надо получить нулевым элементом – первую папку. Если сделаем unset($array[0]) получим пронумерованный с единицы массив. В цикле прогонять два массива? Как-то лень. Решение пришло внезапно. Не уверен насчёт его правильности, но вот оно:
- <?php
- $str = “/home/user/folder”;
- $array = explode(“/”,$str);
- unset($array[0]);
- var_dump($array);
- $array = array_merge(array(),$array);
- var_dump($array);
- ?>
Ну и собственно результат:
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” }
молодец. пустой массив в array_merge можно не подавать
Учи матчасть! http://www.php.su/functions/?array-values
Блин, всё гениальное – просто. Видимо я был пьян, когда писал этот пост :D