我怎样才能获得这样的数组

时间:2014-03-06 06:51:17

标签: php arrays

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

3 个答案:

答案 0 :(得分:4)

由于您目前的数组引号,它正在完整的一个字符串

应该是,

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

<强> DEMO

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

答案 1 :(得分:4)

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

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

答案 2 :(得分: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));
    ?>