$data = array(
0 => array(
'id' => 2,
'pagetitle' => 'Главная',
'parent' => 0
),
1 => array(
'id' => 3,
'pagetitle' => 'Категория',
'parent' => 2
),
2 => array(
'id' => 100,
'pagetitle' => 'Подкатегори 100',
'parent' => 5
),
3 => array(
'id' => 5,
'pagetitle' => 'Подкатегория 5 ',
'parent' => 2
)
);
$categories_array = array();
foreach ($data as $category) {
if (!in_array($category['id'], $categories_array)) {
$categories_array[$category['id']] = array();
$parent_id = $category['parent'];
while ($parent_id > 0) {
foreach ($data as $parent_category) {
if ($parent_id == $parent_category['id']) {
$parent_id = $parent_category['parent'];
$categories_array[$category['id']]['parent'] = $parent_category['id'];
$categories_array[$category['id']]['pagetitle'] = $parent_category['pagetitle'];
}
}
}
}
}
echo '<pre>';
print_r($categories_array);
echo '</pre>';
$data = array(
0 => array(
'id' => 2,
'pagetitle' => 'Главная',
'parent' => 0
),
1 => array(
'id' => 3,
'pagetitle' => 'Категория',
'parent' => 2
),
2 => array(
'id' => 100,
'pagetitle' => 'Подкатегори 100',
'parent' => 5
),
3 => array(
'id' => 5,
'pagetitle' => 'Подкатегория 5 ',
'parent' => 2
)
);
$categories_array = array();
foreach ($data as $category) {
if (!in_array($category['id'], $categories_array)) {
$categories_array[$category['id']] = array();
$categories_array[$category['id']]['parent'] = $category['parent'];
if ($category['parent'] > 0) {
foreach ($data as $parent_category) {
if ($category['parent'] == $parent_category['id']) {
$categories_array[$category['id']]['pagetitle'] = $parent_category['pagetitle'];
}
}
}
}
}
echo '<pre>';
print_r($categories_array);
echo '</pre>';