I have an array called $plugins
that looks something like this :
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
...
...
..
)
)
Now, I am having trouble to get the KEY name (which is path)of each array element ..
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
}
}
When using key($plugins)
it gives me always the same value (first one). When using key($data)
it is giving me the FIRST LETTER only.. (??)
How can I get the this key of each nested array ?
just return $plugin
, not key($plugin)
. $plugin
should already be the key.
to elaborate, when you use the syntax:
foreach ($plugins as $plugin => $data)
it is setting $plugin
to the key, and $data
to it's value.
Your foreach
loop indicates that the path are available as $plugin
. Use that
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
}
Check this modification to your code, it works now.
<?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);
?>