//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 );
答案 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));
?>