2014-03-06 67 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) 請幫助我 –