私は新しい項目が見つかるたびに配列を満たす再帰的なメソッドを作成しようとしています。再帰的メソッドfill array 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が0または1の子Ubigeo参照を持つことができるUbigeoエンティティのチェーンがありますか(ubigo.ubigeo_idはこの子エンティティを定義しています)? – ejuhjav