Хотя ответ уже дан, но вывод не является желаемым выходом OP.
Это можно решить, используя recursion
, например:
<?php
$codes=array();
$code="";
$title="";
$outerArray = array();
function callAgain($arr,&$outerArray,&$code,&$title){
$check=0;
foreach($arr as $value){
if(is_array($value)){
callAgain($value,$outerArray,$code,$title);
}
else{
if($check==0){
$code.=$arr['code'];
if($title==""){
$title.=$arr['title_fa'];
}
else{
$title.=">".$arr['title_fa'];
}
$outerArray[] = array ('title_fa'=> $title,'code'=>$code);
$check=1;
}
}
}
}
$arr = [
['title_fa' => 'Father', 'code' => '02', 'grandchildren'=>[
'title_fa' => 'Child 1', 'code' => '01', 'grandchildren'=>[
'title_fa' => 'Child 2', 'code' => '01', 'grandchildren'=>
[
'title_fa' => 'Child 3', 'code' => '01', 'grandchildren'=> '',
]
]
]]
];
callAgain($arr,$outerArray,$code,$title);
print_r($outerArray);
Вывод :
Array
(
[0] => Array
(
[title_fa] => Father
[code] => 02
)
[1] => Array
(
[title_fa] => Father>Child 1
[code] => 0201
)
[2] => Array
(
[title_fa] => Father>Child 1>Child 2
[code] => 020101
)
[3] => Array
(
[title_fa] => Father>Child 1>Child 2>Child 3
[code] => 02010101
)
)