【问题标题】:create multidimetional array associative array创建多维数组关联数组
【发布时间】:2017-02-03 13:27:35
【问题描述】:

我有一个数组

$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];
}

谢谢。

【问题讨论】:

  • array_walk($arr,function($val,$key) {return array('id'=&gt;$key,'name'=&gt;$val);}); 之后为新鲜索引做$arr=array_values($arr);

标签: php arrays


【解决方案1】:

真的应该自己尝试一下,但这应该会有所帮助:

$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 尝试提供的答案
  • @mokNathal 如果它解决了您的问题,请接受答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-15
  • 2014-10-03
  • 2011-06-03
  • 1970-01-01
  • 2013-08-31
相关资源
最近更新 更多