ПРОБЛЕМА
У меня есть функция, которая принимает вложенный массив, где структура и вложенность массива неизвестно во время выполнения.Все, что известно, это некоторые из целевых имен полей и желаемых значений некоторых листьев.
ВОПРОСЫ
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) Если нет ничего, что позволило бы мне сделать это, есть ли что-то, что-нибудь, что по крайней мереприближается к духу того, чего я надеюсь достичь здесь?
SAMRLE ARRAY
$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',
),
),
),
);