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