在 PHP 中连接数组:为什么运算符会失败
尝试使用“ ”运算符连接数组时,可能会遇到意外结果。考虑以下代码:
$array = array('Item 1'); $array += array('Item 2'); var_dump($array);
输出:
array(1) { [0] => string(6) "Item 1" }
为什么这不起作用?
键和重复项
问题在于数组键和重复值。给定代码中的两个数组的键均为“0”,导致重复值相互覆盖。为了保留原始顺序并防止重复,PHP 使用键“0”的第一个值。
解决方案:数组合并
要正确连接数组,请使用 array_merge ():
$arr1 = array('foo'); // Same as array(0 => 'foo') $arr2 = array('bar'); // Same as array(0 => 'bar') $combined = array_merge($arr1, $arr2);
array_merge() 合并数组,保留键值对。
何时使用运算符
“ ”运算符在组合具有不同键的数组时仍然有用:
$arr1 = array('one' => 'foo'); $arr2 = array('two' => 'bar'); $combined = $arr1 + $arr2;
这将导致:
array('one' => 'foo', 'two' => 'bar');
总之,使用 array_merge() 来连接数组以保持顺序并避免键冲突。使用“”运算符来合并具有唯一键的数组。
以上是为什么组合 PHP 数组时 ( ) 运算符会失败?的详细内容。更多信息请关注PHP中文网其他相关文章!