我想创建一个递归方法来填充每个找到的新项目的数组。递归方法填充数组php php laravel
function getUserUbigeoString($ubigeo_id){
$ubigeoRepository = new \App\Repositories\UbigeoRepository();
$ubigeos = array();
$ubigeo = $ubigeoRepository->getUbigeo($ubigeo_id);
if(!empty($ubigeo)){
if($ubigeo->ubigeo_id == null){
$ubigeos[] = $ubigeo->name;
}
$ubigeos[] = getUserUbigeoString($ubigeo->ubigeo_id);
}
return $ubigeos;
}
该代码的目标是获得一个数组填充所有ubigeos的名称。
0 => ubigeo1
1 => ubigeo2
2 => ubigeo3
etc...
至于现在,我已经尝试将返回许多不同的位置,但我已经得到最接近的结果是:
array:1 [▼
0 => array:1 [▼
0 => array:2 [▼
0 => "Port Dusty"
1 => []
]
]
]
========== EDIT = ===========数据库ubigeos的 结构:
id name level ubigeo_id
----------------------------
3 ubigeo1 1 null
37 ubigeo2 2 3
55 ubigeo3 3 37
输出将是一个简单的数组像这样,然后我可以内爆到逗号分隔的字符串:
array:1 [
0 => 'ubigeo1'
1 => 'ubigeo2'
2 => 'ubigeo3'
]
可以举个例子阵列和期望的输出。所以它可以更容易理解你想要做什么 –
是的,我更新了答案的例子,它的值与一个简单的数组,所以我可以稍后使用implode得到一个逗号分隔的字符串,谢谢 – Carlos
您能否请添加描述输入是如何构成的?即你是否只有一个Ubigeo实体链,其中每个Ubigeo可以有0或1个引用子Ubigeo(并且ubigeo.ubigeo_id定义了这个子实体)? – ejuhjav