如何合并两个数组(一个带有字符串=>值对,另一个带有int =>值对),同时保留字符串/ int键?它们不会重叠(因为一个只有字符串,而另一个只有整数)。
这是我当前的代码(这不起作用,因为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);
1
这很奇怪:根据PHP文档页面,array_merge 不应该这样做。字符串键实际上是整数的字符串表示形式吗?
—
owenmarshall
array_merge正在重新索引我的第二个数组。即。它正在将阵列从更改
—
Garrett
array( 123 => "VALUE123" )
为array( 0 => "VALUE123" )
嗯,那很有趣。我想在那一点上,PHP文档可能还不清楚。它说如果所有数组都有数字键会发生什么,但是没有具体说明如果没有它们就会发生什么。
—
史蒂芬·奥克斯利
也许不是两年前。但是在2012年,有关这一点的文档非常清晰。
—
cartbeforehorse 2012年