How can i create an associative array using the array below, In the fastest and shortest way.
$list = array(array('name', 'aram'), array('family', 'alipoor'));
Something like:
$list = array('name' => 'aram', 'family' => 'alipoor');
How can i create an associative array using the array below, In the fastest and shortest way.
$list = array(array('name', 'aram'), array('family', 'alipoor'));
Something like:
$list = array('name' => 'aram', 'family' => 'alipoor');
The shortest I can think of:
$newlist = array();
foreach ( $list as $keyval ) {
$newlist[ $keyval[0] ] = $keyval[1];
}
I generally think foreach is pretty well readable and normally pretty fast. If you want it in one line, you can do with foreach as well:
$nl = array(); foreach($list as $k=>$v) $nl[$k]=$v; $list = $nl; unset($nl);
Which is basically demonstrating that there is no value in getting something "single line".
Or if you prefer callbacks for some reason I don't know of:
$list = array_reduce($list, function($v,$w) {return $v+array($w[0]=>$w[1]);}, array());
Which demonstrates that as well. It will hardly be faster than foreach, in any case, the speed differences most certainly do not matter in your case.