Ottenere valori di chiave array multidimensionale

Ho una pagina che esegue una ricerca in un database e genera la seguente matrice. Mi piacerebbe essere in grado di scorrere l’array e scegliere il valore accanto assegnato al tasto “contact_id” e fare qualcosa, ma non ho idea di come scendere a quel livello di array.

La matrice è generato dinamicamente, quindi a seconda di quello che cerco i numeri di indice al di sotto di “valori” cambierà di conseguenza.

Sto pensando che devo fare un foreach a partire sotto i valori, ma non so come avviare un foreach in un sottolivello di un array.

Array ( 
[is_error] => 0 
[version] => 3 
[count] => 2 
[values] => Array ( 
    [556053] => Array ( 
        [contact_id] => 556053 
        [contact_type] => Individual 
        [first_name] => Brian 
        [last_name] => YYY 
        [contact_is_deleted] => 0 
    ) 
    [596945] => Array ( 
        [contact_id] => 596945 
        [contact_type] => Individual 
        [first_name] => Brian 
        [last_name] => XXX 
        [contact_is_deleted] => 0 
    ) 
) 

)

Ho guardato il seguente post, ma sembra solo per affrontare la situazione in cui gli indici di un array sono sequenziali.
Array multidimensionale – come ottenere valori specifici di sub-array

Tutte le idee?

Brian

Hai provato la soluzione nell’altra domanda? Suggerimento: foreach ($array['values] as $contacts) { … }
utilizzare foreach invece di for. In alternativa, c’è array_keys() che restituisce tutte le chiavi da un array.
per casuale profondità array vedere stackoverflow.com/questions/2416100/…

OriginaleL’autore bpmccain | 2011-07-25

3 Replies
  1. 3

    Si sono corretti per la vostra assunzione. Si potrebbe fare qualcosa di simile a questo:

    foreach($array['values'] as $key => $values) {
      print $values['contact_id'];
    }

    Che deve dimostrare di partenza a un livello sub. Vorrei anche aggiungere un controllo per vedere se il suo vuoto e se si tratta di un array… ecc.

    Eccellente. Grazie.

    OriginaleL’autore iLLin

  2. 3

    Un altro suggerimento per quanto riguarda la sintassi – se la matrice originale esempio è chiamato $a, quindi i valori sono qui:

    $a['values'][556053]['contact_id']

    e qui:

    $a['values'][596945]['contact_id']

    Quindi, se non c’è una struttura aggiuntiva nel tuo array, quindi questo ciclo è probabilmente quello che si vuole:

    foreach ($a['values'] as $toplevel_id => $record_data) {
        print "for toplevel_id=[$toplevel_id], contact_id=[" . $record_data['contact_id'] . "]\n";
    }

    OriginaleL’autore Peter

  3. 1
    foreach($array['values'] as $sub_arr){
        echo $sub_arr['contact_id'];
    }

    OriginaleL’autore Paulpro

Lascia un commento