Как слить два массива (один со строками => пары значений и другой с парами значений int =>), сохраняя ключи string/int? Ни один из них никогда не будет перекрываться (потому что у одного есть только строки, а у другого есть только целые числа).PHP: объединить два массива, сохраняя ключи вместо переиндексации?
Вот мой текущий код (который не работает, потому что array_merge повторно индексировать массив с целыми ключами):
// 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);
Это странно: по странице док PHP, array_merge * не * сделать это. Являются ли строковые ключи фактически строковыми представлениями целых чисел? – owenmarshall
array_merge переиндексирует мой второй массив. т.е. он меняет массив от 'array (123 =>" VALUE123 ")' to 'array (0 =>" VALUE123 ")' – Garrett
хм, это интересно. Я полагаю, что PHP-документация может быть немного неясной в этом вопросе. В нем говорится, что произойдет, если * все * массивов имеют числовые ключи, но в нем конкретно не говорится, что произойдет, если они этого не сделают. –