BlackTheMad
Новичок
Сброс ключей массива.
Добрый день. Существует следующая задача:
Необходимо сбросить ключи у массива без потери его структуры.
Поясняю.
Есть БД, в которой хранится дерево элементов в виде Adjacency List, т.е. с id и parent_id. Считываем его. Получаем:
$array[] = array("key" => 1, "p_key" => 0, "name" => "name1");
$array[] = array("key" => 2, "p_key" => 1, "name" => "name2");
$array[] = array("key" => 3, "p_key" => 2, "name" => "name3");
$array[] = array("key" => 4, "p_key" => 3, "name" => "name4");
$array[] = array("key" => 5, "p_key" => 1, "name" => "name5");
Формируем "массивное дерево" =) на основе этого массива, получаем:
И всё хорошо. Но мне необходимо, чтобы ключи всех массивов и вложенных массивов начинались с 0 и далее по списку.
Вот.
Если кому интересно, то необходимо мне это для того, чтобы скормить этот массив функции json_encode, и отправить для построения дерева с помощью ExtJs. И если ключи идут по порядку, начиная с "0", то всё строится отлично. А если они начинаются не с нуля, то json_encode их упомянает и дерево не строится.
Заранее спасибо за любую информацию.
Добрый день. Существует следующая задача:
Необходимо сбросить ключи у массива без потери его структуры.
Поясняю.
Есть БД, в которой хранится дерево элементов в виде Adjacency List, т.е. с id и parent_id. Считываем его. Получаем:
$array[] = array("key" => 1, "p_key" => 0, "name" => "name1");
$array[] = array("key" => 2, "p_key" => 1, "name" => "name2");
$array[] = array("key" => 3, "p_key" => 2, "name" => "name3");
$array[] = array("key" => 4, "p_key" => 3, "name" => "name4");
$array[] = array("key" => 5, "p_key" => 1, "name" => "name5");
Формируем "массивное дерево" =) на основе этого массива, получаем:
PHP:
Array
(
[1] => Array(
[key] => 1, [p_key] => 0, [name] => name1, [children] => Array(
[2] => Array([key] => 2, [p_key] => 1, [name] => name2, [children] => Array(
[3] => Array ([key] => 3, [p_key] => 2, [name] => name3, [children] => Array(
[4] => Array([key] => 4, [p_key] => 3, [name] => name4)
)
)
)
)
[5] => Array(
[key] => 5, [p_key] => 1, [name] => name5)
)
)
)
И всё хорошо. Но мне необходимо, чтобы ключи всех массивов и вложенных массивов начинались с 0 и далее по списку.
Вот.
Если кому интересно, то необходимо мне это для того, чтобы скормить этот массив функции json_encode, и отправить для построения дерева с помощью ExtJs. И если ключи идут по порядку, начиная с "0", то всё строится отлично. А если они начинаются не с нуля, то json_encode их упомянает и дерево не строится.
Заранее спасибо за любую информацию.