2014-03-06 66 views
3
//I have array like below: 
$a =array('1,2,6'); 
$b =array('2,3,1'); 

//Then I using ArrayCombine : 
$arr_combine = array_combine($a, $b); 


//OUTPUT: 
//Array([1,2,6] => 2,3,1) ; 

我怎样才能得到像下面的数组?我怎样才能得到这样的阵列

//OUTPUT: 
array(1=>2, 2=>3, 6=>1); 

回答

4

它采取为完成一个字符串由于阵列你现在的行情,

应该是,

$a = array('1','2','6'); // And not '1,2,6' 
$b = array('2','3','1'); 
$arr_combine = array_combine($a, $b); 

DEMO

如果你不能改变阵列&有这样的格式只能看到@xdazz answer

+1

+1为一个字符串 –

+0

@Rikesh你有一个点,但如果他的阵列有一个什么该格式的字符串? – krishna

+0

@krishna - 在这种情况下,xdazz已经发布了答案。 – Rikesh

4

如果你有这样的数组,那么你必须爆炸元素。

$result = array_combine(explode(',', $a[0]), explode(',', $b[0])); 
2

对于你的第二个问题,检查这样

<?php 

    $x = array(1 => '2', 2 => '3', 6 => '1') ; 
    $y = array(1 => '2', 6 => '2') ; 

    $s = array(); 

    foreach($x as $key=>$val) 
    { 
     if (array_key_exists($key,$y)) 
     { 
      $s[$key] = $x[$key] + $y[$key]; 
     } 
    } 

    var_dump($s); 

    ?> 

尝试这样

<?php 
    $a =array('1,2,6'); 
    $b =array('2,3,1'); 

    $a = explode(',',$a[0]); 
    $b = explode(',',$b[0]); 

    var_dump($a); 
    var_dump($b); 

    var_dump(array_combine($a,$b)); 
    ?> 
+0

这是工作谢谢你,但我有一件事我卡住了,你能再帮我一次吗? –

+0

@SherAh很高兴知道我可以帮你:) – Dev

+0

**第二个问题:** Array([1] => 2 [2] => 3 [6] => 1); // array1有3个键和3个值1 => 2,2 => 3,6 => 1 Array([1] => 2 [6] => 2); // array2有2个键和2个值1 => 2,6 => 1 我想要array1和array2,它们可以将[1] = [ > 4; [6] => 3) 请帮助我 –