Php 创建多维数组关联数组

Php 创建多维数组关联数组,php,arrays,Php,Arrays,我有一个数组 $arr = array( 1=>'xyz', 2=>'abc', 3=>'pqr' ); 我想把这个转换成 $multiarr=array( [0]=>array( ['id']=>1, ['name']=>'abc'), [1]=>array( ['id']=>2, ['name']=>'xyz'), [2]=>array( ['id']=>3, ['name

我有一个数组

$arr = array(
1=>'xyz',
2=>'abc',
3=>'pqr'
);
我想把这个转换成

$multiarr=array(
[0]=>array(
    ['id']=>1,
    ['name']=>'abc'),

[1]=>array(
    ['id']=>2,
    ['name']=>'xyz'),

[2]=>array(
    ['id']=>3,
    ['name']=>'pqr')

);
id是key,name是第一个数组的值

我怎样才能乐观地实现这一点

我已经这样做了

$keys=array_keys($arr);
$values=array_values($arr) ;   
$multiarr=array();
for($i=0; $i<count($keys); $i++)
{
 $multiarr[$i]['id']=$keys[$i];
    $multiarr[$i]['name']=$values[$i];
}

谢谢。

你应该亲自尝试一下,伙计,但这应该会有帮助:

$arr = array(
    1=>'xyz',
    2=>'abc',
    3=>'pqr'
);

$MultiArr = array();
$i = 0;
foreach($arr as $ID=>$Name){
    $MultiArr[$i]['id'] = $ID;
    $MultiArr[$i]['name'] = $Name;
    $i++;
}
print_r($MultiArr);

@Epodax正式注明。虽然他提供了起始代码,但只是给了小伙子一个正确方向的点。@mokNathal尝试提供的代码answer@mokNathal如果它解决了您的问题,请接受answerarray\u walk$arr,function$val,$key{return array'id'=>$key,'name'=>$val;};之后,对于新索引do$arr=array_值$arr;