例:
$arr = array(array("name"=>"Bob","species"=>"human","children"=>array(array("name"=>"Alice","age"=>10),array("name"=>"Jane","age"=>13)),array("name"=>"Sparky","species"=>"dog")));
print_r($arr);
array_walk_recursive($arr, function($v,$k) {
echo "key: $k\n";
});
ここで問題なのは、最後のキーだけを取得することですが、自分がどこにいたかを参照する方法がありません。つまり、特定のキーを保存し、関数を離れた後に値を変更したり、別の同一の配列にある同一の値を変更したりできません。
文字列の代わりに取得する必要があるのは、たとえば、特定の値につながるすべてのキーを持つ配列です[0,"children",1,"age"]
。
編集:この配列は単なる例です。PHP でネストされた配列を反復処理し、最後のキーだけでなく完全な場所のパスを取得する普遍的な方法があるかどうかを尋ねました。そして、配列の構造を反映するネストされたループを作成することで、これを行う方法があることを知っています。しかし繰り返しますが、私は配列構造を事前に知りません。