0
は、この配列を考える:配列内の子アイテムへのパスを追加するにはどうすればよいですか?
$menu_items = array(
array(
'key' => 'aaa',
'children' => array(
array(
'key' => 'www'
),
array(
'key' => 'xxx'
),
)
),
array(
'key' => 'bbb',
'children' => array(
array(
'key' => 'yyy'
),
array(
'key' => 'zzz'
),
)
),
);
私はこのような配列内の各ノードへのパスを追加したいと思います:
$menu_items = array(
array(
'key' => 'aaa',
'path' => 'aaa',
'children' => array(
array(
'key' => 'www',
'path' => 'aaa/www'
),
array(
'key' => 'xxx',
'path' => 'aaa/xxx'
),
)
),
array(
'key' => 'bbb',
'path' => 'bbb',
'children' => array(
array(
'key' => 'yyy',
'path' => 'bbb/yyy',
),
array(
'key' => 'zzz',
'path' => 'bbb/zzz',
),
)
),
);
このメニュー項目の配列は2つのレベルがありますが、それはより多くのレベルを持つことができます。私が試してみました何
:
function add_menu_item_path(&$menu_data, $path = '') {
foreach ($menu_data as &$menu_item) {
$path = $path . '/' . $menu_item['key'];
$menu_item['path'] = $path;
if (!empty($menu_item['children'])) {
add_menu_item_path($menu_item['children'], $path);
}
}
}
予想通りこれは動作しません、それはここで見ることができます: http://ideone.com/sHdhss
これまでにどのようなアプローチを試みましたか? – miken32
あなたが望む結果は有用ですが、これまでに試したコードも表示する必要があります。あなたが持っているものを私たちに教えてください! –