問題PHP:在運行時修改具有未知結構的數組;什麼是最優雅的解決方案?
我有一個函數,它在嵌套陣列,其中該陣列的結構和築巢是在運行時未知。所有已知的是一些目標字段名稱和一些葉子的期望值。
質詢
1)我希望能修改這個未知的結構,仍然有代碼可讀性和同胞程序員容易理解。什麼(如果有的話)解決方案將允許我在PHP中做這樣的事情?
// Pseudo-code for things I would like to be able to do
// this is kinda like the same thing as XPATH, but for native PHP array
// find *every* fname with value of "Brad" and change it to "Brian"
$mydata->find_all('*:fname')->where_value_eq('Brad')->set_equal_to('Brian');
// find *the first* fave_color and set it to "Green"
$mydata->find('*:fave_color')->get(0)->set_equal_to('Green');
2)如果有什麼在那裏,讓我做到這一點,是有什麼,什麼,至少能接近我希望能在這裏完成的精神?
樣本數組
$mydata = array(
'people' => array(
array('fname'=>'Alice'),
array('fname'=>'Brad'),
array('fname'=>'Chris'),
),
'animals' => array(
array('fname'=>'Dino'),
array('fname'=>'Lassie'),
array('fname'=>'Brad'),
),
'settings' => array(
'user_prefs'=>array(
'localhost'=>array(
'fave_color'=>'blue',
),
),
),
'places' => array(
array('state'=>'New york',
'cities'=>array(
'name'=>'Albany',
'name'=>'Buffalo',
'name'=>'Corning',
),
'state'=>'California',
'cities'=>array(
'name'=>'Anaheim',
'name'=>'Bakersfield',
'name'=>'Carlsbad',
),
),
),
);
嗨!這個問題沒有回答嗎? – 2011-03-03 04:20:50