Come ottenere la chiave nell’array multi-dimensionale in php

Array
(
    [0] => Array
        (
            [name] => A
            [id] => 1
            [phone] => 416-23-55
            [Base] => Array
                (
                    [city] => toronto
                )

            [EBase] => Array
                (
                    [city] => North York                
                )

            [Qty] => 1
        )

(
    [1] => Array
        (
            [name] => A
            [id] => 1
            [phone] => 416-53-66
            [Base] => Array
                (
                    [city] => qing
                )

            [EBase] => Array
                (
                    [city] => chong                
                )

            [Qty] => 2
        )

)

Come posso ottenere il tutti il valore della chiave con il formato “0, nome, id, telefono, Base, città, Ebase, Qty”?

Grazie!

partire con un foreach() ciclo potrebbe essere un’idea.
Si sia bisogno di fare una Larghezza di Ricerca o di una Approfondita Ricerca Prima di trovare tutte le chiavi dell’array. Per farlo sarà necessario utilizzare una funzione ricorsiva.
Per quella stessa matrice $keys = array_merge(array_keys($array), array_keys(current($array))); sarebbe probabilmente fare. Ma si potrebbe fare con il sapere esattamente cosa si sta cercando di ottenere facendo questo per fornire consigli sui migliore modo per farlo…

OriginaleL’autore aje | 2012-06-27

2 risposte

  1. 12

    Provare questo

    function array_keys_multi(array $array)
    {
        $keys = array();
    
        foreach ($array as $key => $value) {
            $keys[] = $key;
    
            if (is_array($value)) {
                $keys = array_merge($keys, array_keys_multi($value));
            }
        }
    
        return $keys;
    }
    Funziona alla grande! Grazie!
    Questo non è corretto per gli array multidimensionali.
    PHP 5.x non vorrei che l’array $array in funzione di chiamata.. cordiali saluti invece sarebbe $array = array() o solo $array)

    OriginaleL’autore Meliborn

  2. 5

    Se non sai cosa è la dimensione della matrice, usare una funzione ricorsiva con un ciclo foreach, che si chiama se ogni $val è un array. Se si conosce la dimensione, poi basta foreach attraverso ogni dimensione e registrare i tasti da ognuno di loro.

    Qualcosa di simile a questo:

    <?php
    function getKeysMultidimensional(array $array) 
    {
        $keys = array();
        foreach($array as $key => $value)
        {
            $keys[] = $key;
            if( is_array($value) ) { 
                $keys = array_merge($keys, getKeysMultidimensional($value));
            }
        }
    
        return $keys;
    
    }

    OriginaleL’autore Lusitanian

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *