PHP的array_combine可以用于创建具有(稀疏)数字键的关联数组吗?

PHP的array_combine可以用于创建具有(稀疏)数字键的关联数组吗?,php,arrays,Php,Arrays,我使用preg_匹配在网页中查找键和值。有些键是数字,比如101357,但大多数是字符串。当我使用array_combine创建包含这些键和值的数组时,它会将数字键转换为从键0开始的有序数组元素: 发现: "ABC" => "Value1", "101397" => "Value2", "DEF" => "Value3", "401995" => "Value4" 所以$keys=arrayABC,101397,DEF,401995和$VAL=arrayVa

我使用preg_匹配在网页中查找键和值。有些键是数字,比如101357,但大多数是字符串。当我使用array_combine创建包含这些键和值的数组时,它会将数字键转换为从键0开始的有序数组元素:

发现:

"ABC"    => "Value1",
"101397" => "Value2",
"DEF"    => "Value3",
"401995" => "Value4"
所以$keys=arrayABC,101397,DEF,401995和$VAL=arrayValue1

print_r(array_combine($keys, $vals)) produces:

"ABC" => "Value1"
0     => "Value2"
"DEF" => "Value3"
1     => "Value4"
所以我丢失了键的值。如果可能的话,在找到一个更优雅的解决方案之前,我将把数组_组合展开成一个

foreach($keys as $idx=>$key) 
{
    $result[$key] = $vals[$val];
}

我没有得到和你一样的结果:

$array = array("ABC" => "Value1",
"101397" => "Value2",
"DEF" => "Value3",
"401995" => "Value4");

$keys = array_keys($array);
$values = array_values($array);

print_r(array_combine($keys, $values));
给出:

Array ( [ABC] => Value1 [101397] => Value2 [DEF] => Value3 [401995] => Value4 )
显示$keys和$values的值:

即使在可能的情况下使用非字符串键也会得到相同的结果

$array = array("ABC" => "Value1",
101397 => "Value2",
"DEF"  => "Value3",
401995 => "Value4");

$keys = array_keys($array);
$values = array_values($array);

print_r(array_combine($keys, $values));

Array ( [ABC] => Value1 [101397] => Value2 [DEF] => Value3 [401995] => Value4 )

代码中的其他地方有问题。数组保存键。是的,我不能复制这个。如果不希望出现这种行为,array\u merge会压缩您拥有的+键,但array\u combine不会。这里是PHP5.3.5
$array = array("ABC" => "Value1",
101397 => "Value2",
"DEF"  => "Value3",
401995 => "Value4");

$keys = array_keys($array);
$values = array_values($array);

print_r(array_combine($keys, $values));

Array ( [ABC] => Value1 [101397] => Value2 [DEF] => Value3 [401995] => Value4 )