【发布时间】:2011-02-24 21:21:14
【问题描述】:
问题
我有一个函数接收嵌套数组,其中数组的结构和嵌套在运行时是未知。所知道的只是一些目标字段名和一些叶子的期望值。
问题
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',
),
),
),
);
【问题讨论】:
-
嗨!这个问题还没回答吗?
标签: php arrays data-structures nested