2011-12-13 47 views
1
$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拥有数组1的值作为关键字。根据另一个值设置数组的键

应该改为:

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

我写了这个代码,但是,我不知道为什么它只返回数组2的一部分。

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); 

在此先感谢。

+0

文档您也许可以尝试在你的两个阵列的使用array_flip()。之后你使用array_combine() – djot

回答

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

相关问题