根据另一个值设置数组的键

时间:2011-12-13 08:20:11

标签: php multidimensional-array

$array1 = array( [0] => 2 [1] => 3 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 ) ;

$array2 = array( ( [0] => Array (...) [1] => Array (...) [2] => Array (...) ... [6] => Array (...));

它们具有相同数量的元素。我希望array2具有array1的值作为键。

应该成为:

 $array2 = array( ( [2] => Array (...) [3] => Array (...) [5] => Array (...) ... [9] => Array (...));

我已编写此代码,但我不知道为什么它只返回array2的一部分。

reset($array1);reset($array2);
foreach ($array2 as $k => $v) {
   unset ($array2[$k]);

   $new_key =  current($array1);
   next($array1);
   $array2[$new_key] = $v;
}
print_r($array2);

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用array_combine创建一个对象,其中包含来自一个数组的键,以及来自另一个数组的值。

$array_1 = array ('hello','world','stackoverflow');
$array_2 = array (
  array ('greetings'),
  array ('planet'),
  array ('websitefilledwithgeeks')
);

print_r (
  array_combine ($array_1, $array_2)
);

输出

    Array
(
    [hello] => Array
        (
            [0] => greetings
        )

    [world] => Array
        (
            [0] => planet
        )

    [stackoverflow] => Array
        (
            [0] => websitefilledwithgeeks
        )

)

PHP: array_combine

的文档