我有一个名为$plugins
的数组,看起来像这样:
Array
(
[path/to/file.php] => Array
(
[Name] => somevalue_a
[TextDomain] => somevalue_b
[value_c] => somevalue_c
[value_d] => somevalue_d
...
...
..
)
[path/to/file2.php] => Array
(
[Name] => somevalue_a
[TextDomain] => somevalue_b
[value_c] => somevalue_c
[value_d] => somevalue_d
...
...
..
)
)
现在,我无法获取每个数组元素的KEY名称(即路径)。
function get_plugin_data(){
foreach ($plugins as $plugin => $data) {
$plugin_data = $plugins[$plugin];
// Start simple DEBUG
echo '</br>===============================</br>' ;
echo '</br><b>Plugin Name : </b>'. $data[Name]; .'</br>' ;
echo '</br><b>Plugin Path : </b>'. key($plugins) .'</br>' ; // <-- Problem here
echo '</br>TextDomain set : '. $data[TextDomain] .'</br>' ;
echo '</br>===============================</br>' ;
// End DEBUG
}
}
使用key($plugins)
时,它总是给我相同的值(第一个)。
当使用key($data)
时,它只给我第一封信..(??)
如何获取每个嵌套数组的这个键?
答案 0 :(得分:1)
您的foreach
循环表示该路径可用$plugin
。使用
foreach ($plugins as $plugin => $data) {
// ^ This represents the key of the array item
$plugin_data = $plugins[$plugin];
// Start simple DEBUG
echo '</br>===============================</br>' ;
echo '</br><b>Plugin Name : </b>'. $data[Name]; .'</br>' ;
echo '</br><b>Plugin Path : </b>'. $plugin .'</br>' ; // <-- Problem here
echo '</br>TextDomain set : '. $data[TextDomain] .'</br>' ;
echo '</br>===============================</br>' ;
// End DEBUG
}
答案 1 :(得分:1)
只返回$plugin
,而不是key($plugin)
。 $plugin
应该已成为关键。
详细说明,当您使用语法时:
foreach ($plugins as $plugin => $data)
它将$plugin
设置为密钥,$data
设置为密钥。
答案 2 :(得分:0)
检查您对代码的修改,现在可以正常使用。
<?php
$plugins = Array
(
'array1' => Array
(
'name' => 'somevalue_a',
'TextDomain' => 'somevalue_b',
'value_c' => 'somevalue_c',
'value_d' => 'somevalue_d'
),
'array2' => Array
(
'name' => 'somevalue_a',
'TextDomain' => 'somevalue_b',
'value_c' => 'somevalue_c',
'value_d' => 'somevalue_d'
)
);
function get_plugin_data($plugins){
foreach ($plugins as $plugin => $data) {
$plugin_data = $plugins[$plugin];
// Start simple DEBUG
echo '</br>===============================</br>' ;
echo '</br><b>Plugin Name : </b>'. $data['name'] .'</br>' ;
echo '</br><b>Plugin Path : </b>'. key($plugins) .'</br>' ; // <-- Problem here
echo '</br>TextDomain set : '. $data['TextDomain'] .'</br>' ;
echo '</br>===============================</br>' ;
// End DEBUG
}
}
get_plugin_data($plugins);
//print_r($plugins);
?>