Search code examples
phparraysmultidimensional-arrayarray-key

PHP - get a KEY of a nested array


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 ?


Solution

  • 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.