desatir7316
یک شنبه 06 اردیبهشت 1394, 17:50 عصر
سلام دوستان
این آرایه رو تصور کنید :
$row = [
['id' => 1, 'parent_id' => 0, 'title' => 'A'],
['id' => 2, 'parent_id' => 1, 'title' => 'B'],
['id' => 3, 'parent_id' => 2, 'title' => 'C'],
['id' => 4, 'parent_id' => 0, 'title' => 'D'],
];
با کمک تابع بازگشتی زیر به صورت ارایه درختی در اومده :
function buildTree(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
$tree = buildTree($row);
الان یه آرایه به شکل زیر بهم میده :
[
0 => [
'id' => 1
'parent_id' => 0
'title' => 'A'
'children' => [
0 => [
'id' => 2
'parent_id' => 1
'title' => 'B'
'children' => [
0 => [
'id' => 3
'parent_id' => 2
'title' => 'C'
]
]
]
]
]
1 => [
'id' => 4
'parent_id' => 0
'title' => 'D'
]
]
حالا می خوام تبدلش کنم به یه ارایه به شکل زیر:
// id => title
[
1 => 'A',
2 => '-B',
3 => '--D',
4 => 'E'
]
ممنون می شم راهنمایی کنید
این آرایه رو تصور کنید :
$row = [
['id' => 1, 'parent_id' => 0, 'title' => 'A'],
['id' => 2, 'parent_id' => 1, 'title' => 'B'],
['id' => 3, 'parent_id' => 2, 'title' => 'C'],
['id' => 4, 'parent_id' => 0, 'title' => 'D'],
];
با کمک تابع بازگشتی زیر به صورت ارایه درختی در اومده :
function buildTree(array $elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
$tree = buildTree($row);
الان یه آرایه به شکل زیر بهم میده :
[
0 => [
'id' => 1
'parent_id' => 0
'title' => 'A'
'children' => [
0 => [
'id' => 2
'parent_id' => 1
'title' => 'B'
'children' => [
0 => [
'id' => 3
'parent_id' => 2
'title' => 'C'
]
]
]
]
]
1 => [
'id' => 4
'parent_id' => 0
'title' => 'D'
]
]
حالا می خوام تبدلش کنم به یه ارایه به شکل زیر:
// id => title
[
1 => 'A',
2 => '-B',
3 => '--D',
4 => 'E'
]
ممنون می شم راهنمایی کنید