Jak scalić dwie tablice (jedna z ciągiem => pary wartości i druga z wartościami = = wartości) zachowując ciągi znaków/int? Żadne z nich nigdy się nie pokryją (ponieważ jeden ma tylko łańcuchy, a drugi tylko liczby całkowite).PHP: scalanie dwóch tablic przy zachowaniu kluczy zamiast ponownego indeksowania?
Oto mój aktualny kod (który nie działa, ponieważ array_merge jest ponowne indeksowanie tablicy z kluczami Integer):
// 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);
To dziwne: według strony doc PHP array_merge * * nie powinien tego robić. Czy klucze łańcuchowe w rzeczywistości ciąg znaków reprezentują liczby całkowite? – owenmarshall
array_merge reindeksuje moją drugą tablicę. tj. zmienia tablicę z 'tablica (123 =>" VALUE123 ")' na 'tablica (0 =>" VALUE123 ")' – Garrett
hmm, to jest interesujące. Przypuszczam, że dokumentacja PHP może być nieco niejasna w tym punkcie. Mówi, co się stanie, jeśli * wszystkie * tablic ma klucze numeryczne, ale nie mówi dokładnie, co się stanie, jeśli tego nie zrobią. –