如何在PHP数组修改的值,如果你不事先知道数组的结构?
例
在下文阵列,我在阵列,其中“系统” ==“的knoppix”的一部分以改变“fave_color”到“蓝色” ...问题是我不知道数组的结构将在运行什么,所以我不能简单地做:
$myarray['settings']['user_prefs']['otherhost']['fave_color'] = 'blue';
这是行不通的,因为嵌套在运行时的fave_color未知。
此外,我感兴趣的fave_color密钥是,具体取决于系统阵列密钥。
我必须找到值为'knoppix'的人,然后更改相应的'fave_color'值,确保不会更改数组中的任何其他fave_color值。
'settings' => array(
'user_prefs'=>array(
'localhost'=>array(
'fave_color'=>'orange',
'system' =>'unbuntu',
),
'otherhost'=>array(
'fave_color'=>'yellow',
'system' =>'knoppix',
),
),
),
你是什么意思你不知道数组的结构?它是随机的吗?必须有一些结构,或者你不知道你想要改变什么样的价值。 – meagar 2011-02-25 21:52:37
我知道有一个关键的'系统',我知道有一个相应的兄弟关键'fave_color'...我不知道这些关键将位于数组中的位置......(我不知道是否它会在设置或设置/ user_prefs或设置/ otherhost),当它需要将fave_color从'黄色'更改为'蓝色'。此外,我不能只改变fave_color,但我必须更改*特定* fave_color在system =='knoppix'的分支中。 – dreftymac 2011-02-25 21:56:49
cakephp :: set是另一个选项,请参阅“flatten”方法。 – dreftymac 2011-10-31 14:22:23