Come posso unire due array (uno con string => coppie di valori e un altro con int => coppie di valori) mantenendo le chiavi string/int? Nessuno di essi si sovrapporrà mai (perché uno ha solo stringhe e l'altro ha solo numeri interi).PHP: unire due array mantenendo le chiavi invece della reindicizzazione?
Ecco il mio codice attuale (che non funziona, perché array_merge è re-indicizzazione l'array con chiavi intere):
// get all id vars by combining the static and dynamic
$staticIdentifications = array(
Users::userID => "USERID",
Users::username => "USERNAME"
);
// get the dynamic vars, formatted: varID => varName
$companyVarIdentifications = CompanyVars::getIdentificationVarsFriendly($_SESSION['companyID']);
// merge the static and dynamic vars (*** BUT KEEP THE INT INDICES ***)
$idVars = array_merge($staticIdentifications, $companyVarIdentifications);
Che strano: secondo la pagina doc PHP, array_merge * * non dovrebbe farlo. Le chiavi di stringa sono in realtà rappresentazioni stringa di interi? – owenmarshall
array_merge sta reindicando il mio secondo array. ie. sta cambiando l'array da 'array (123 =>" VALUE123 ")' a 'array (0 =>" VALUE123 ")' – Garrett
hmm, è interessante. Suppongo che la documentazione di PHP potrebbe essere un po 'poco chiara su questo punto. Dice cosa succederà se * tutti * gli array abbiano i tasti numerici, ma non specifichi specificamente cosa accadrà se non lo fanno. –