Voglio fare qualcosa apparentemente molto semplice, ma non riesco a trovare nulla a riguardo: basta estrarre un sottoinsieme di un array simile a array_splice, ma usando le chiavi per recuperare i valori:Estrazione di un sottoinsieme di valori da un array associativo (php)
$data = array('personName' => 'John', 'personAge' => 99, 'personId' => 1,
/* many more data I don't need here ... */);
list($name, $age, $id) = array_splice_by_keys($data,
array('personName', 'personAge', 'personId');
Se tutto il resto fallisce, non c'è una funzione built-in per filtrare un array associativo con i tasti? Ad esempio:
$ filteredArray = array__extract__keys__and__values ($ srcArray, $ arrayOfWantedKeys);
// create a new array with ONLY those key => values I need
$wanted_values = array_extract_keys_and_values($data,
array('personName', 'personAge', 'personId');
echo $wanted_values['personName'];
Credo che la ragione per cui voglio fare il primo, è che non mi piace ripetere l'accesso array associativo tutto il mio codice, sembrerebbe meglio ottimizzato per copiare i valori che vengono utilizzati un sacco (in un ciclo per esempio), in una variabile locale, in più è molto più facile digitare $ name di $ somearray ['nome'].
EDIT: Grazie, credo che per l'utilizzo con la lista, la soluzione sarebbe
list($x, $y, $z) = array_values(array_intersect_key($array, array_flip($wantedKeys)));
Intesresting uso di array_flip!