Sto tentando di sovrascrivere gli elementi di un array con valori da un altro - senza creando ulteriori elementi nel processo.PHP array_replace senza creare chiavi
Ad esempio:
$base = array('a' => 'apple', 'b' => 'banana');
$replace = array('a' => 'orange', 'b' => 'grape', 'c' => 'cauliflower');
unire le matrici per creare:
array('a' => 'orange', 'b' => 'grape'); // 'c' not included
Uso array_merge o array_replace avrebbe correttamente sovrascrivere gli elementi, ma la matrice risultante dovrebbe includere elementi non trovata nel primo array.
Come è possibile combinare due array per creare un array contenente solo chiavi del primo array e i valori corrispondenti di un secondo array?
Esiste una funzione di array PHP esistente che può eseguire questa operazione?
Grazie per il vostro aiuto!
perché non solo array_intersect_key ($ sostituire, $ base)? controllando la documentazione [collegamento] http://www.php.net/manual/en/function.array-intersect-key.php "Si noti inoltre che i valori per i tasti" blu "e" verde "differiscono tra i due array. Una corrispondenza si verifica ancora perché vengono controllate solo le chiavi. I valori restituiti sono quelli dell'array1. " Quindi non penso che sia richiesto array_merge .. – coderkane
@coderkane: Perché se '$ replace' non contiene tutte le chiavi che' $ base' ha il risultato avrà valori mancanti. – Jon
Sono consapevole, ma l'OP ha detto che vuole valori solo dal secondo array.Tuttavia, è possibile che non abbia previsto questo scenario, per cui è opportuno precisarlo. – coderkane