我有这个数组:
Array
(
[0] => Array
(
[menu_id] => 8
[menu_children] => 0
[menu_voce] => Eventi
[menu_alias] => eventi
[menu_pubblicato] => 1
[pagine_id] => 6
[pagine_titolo] => Pagina degli eventi
[pagine_descrizione] => pagina eventi
[pagine_testo] => <p>eventi</p>
[pagine_creato] => 2013-12-04 18:49:49
[pagine_template] => base.html
[pagine_aggiornato] =>
[pagine_timezone] => Europe/Rome
[childs] => Array
(
[0] => Array
(
[menu_id] => 9
[menu_children] => 8
[menu_voce] => Natale
[menu_alias] => natale
[menu_pubblicato] => 1
[pagine_id] => 7
[pagine_titolo] => natale 2013
[pagine_descrizione] => natale 2013
[pagine_testo] => <p>natale 2013!</p>
[pagine_creato] => 2013-12-04 19:09:57
[pagine_template] => base.html
[pagine_aggiornato] =>
[pagine_timezone] => Europe/Rome
)
)
)
[1] => Array
(
[menu_id] => 10
[menu_children] => 0
[menu_voce] => Promozioni
[menu_alias] => promozioni
[menu_pubblicato] => 1
[pagine_id] => 8
[pagine_titolo] => promozioni
[pagine_descrizione] => promozioni
[pagine_testo] => <p>promozioni</p>
[pagine_creato] => 2013-12-04 19:17:37
[pagine_template] => base.html
[pagine_aggiornato] =>
[pagine_timezone] => Europe/Rome
)
)
如果“pagine_aggiornato”为空,我需要更改“pagine_aggiornato”==“pagine_creato”中的值,之后我需要调用非标准函数。
在伪代码中:
if $pageTree['pagine_aggiornato'] == ''
{
$pageTree['pagine_aggiornato']=localizzaData($pageTree['pagine_creato'],UTF);
} else {
$pageTree['pagine_aggiornato'] = localizzaData($pageTree['pagine_aggiornato'],UTF);
}
问题在于是否存在“Childs”子阵列,具体取决于是否存在子菜单。
你能帮我写一下智能快速的代码来编辑这个数组吗?谢谢
编辑:
有了umulder的提示,我正在使用array_walk_recursive,但每次“pagine_aggiornato”值都为null。
这是代码:
function _update_key_array(&$item,$key)
{
if ($key=='pagine_creato')
{
$creazione = $item;
if($key=='pagine_aggiornato')
{
if ($item=='')
{
$item = $creazione;
}
}
}
}
array_walk_recursive($pageTree,'_update_key_array');