如何在php中使用2维数组创建关联数组?

时间:2011-08-22 11:58:00

标签: php arrays associative-array

如何使用下面的数组创建关联数组,以最快和最短方式。

$list = array(array('name', 'aram'), array('family', 'alipoor'));

类似的东西:

$list = array('name' => 'aram', 'family' => 'alipoor');

4 个答案:

答案 0 :(得分:3)

$assocArray = array();

foreach($list as $subArray)
{
    $assocArray[$subArray[0]] = $subArray[1];
}

答案 1 :(得分:2)

我能想到的最短的时间:

$newlist = array();
foreach ( $list as $keyval ) {
    $newlist[ $keyval[0] ] = $keyval[1];
}

答案 2 :(得分:0)

可怕的方法,但

$lst = array_combine(array_map('array_shift',$list), array_map('array_pop',$list));

仅限 用于双元素内部数组。

注意:此解决方案中有三个隐式循环。所以更好地使用Rijk van Wel或kevinmajor1回答的方法

答案 3 :(得分:0)

我一般认为foreach非常易读并且通常非常快。如果你想要它在一行中,你也可以使用foreach:

$nl = array(); foreach($list as $k=>$v) $nl[$k]=$v; $list = $nl; unset($nl);

这基本上表明获得某些“单线”没有价值。

或者,如果您因某些原因而不喜欢回调,我不知道:

$list = array_reduce($list, function($v,$w) {return $v+array($w[0]=>$w[1]);}, array());

这也证明了这一点。它几乎不会比foreach快,在任何情况下,速度差异在你的情况下肯定无关紧要。