将PHP数组转换为Key =>值数组

时间:2011-03-04 15:19:16

标签: php arrays

总PHP Noob,我找不到这个特定问题的答案。希望有人可以帮忙!

$ myvar是一个如下所示的数组:

Array (  
 [aid] => Array (  
  [0] => 2  
  [1] => 1  
 )  
 [oid] => Array(  
  [0] => 2  
  [1] => 1  
 )  
)

我需要将一个新变量(称为$ attributes)设置为如下所示:

$attributes = array(
 $myvar['aid'][0] => $myvar['oid'][0], 
 $myvar['aid'][1] => $myvar['oid'][1], 
 etc...
);

当然,$ myvar可能包含更多项目......

如何遍历$ myvar并构建$ attributes变量?

4 个答案:

答案 0 :(得分:4)

使用array_combine()

这将给出预期的结果。

http://php.net/manual/en/function.array-combine.php

用法:

$attributes = array_combine($myArray['aid'], $myArray['oid']);

将按要求产生结果。

答案 1 :(得分:0)

如果我理解正确的问题,那就是这样的事情

$attributes = array();
foreach ($myvar['aid'] as $k => $v) {
    $attributes[$v] = $myvar['oid'][$k]; 
}

答案 2 :(得分:0)

您的要求不明确。你的意思是“而且,当然,$ myvar可能包含更多项目......”有两种可能性

第一。主阵列中有两个以上的数组。比如'援助','oid'和'xid','yid' 第2位。或两个主数组,子数组中有许多项,如“[0] => 2 [1] => 1 [2] => 3”

我认为您正在讨论第二个选项,如果是,请使用以下代码

$aAid = $myvar['aid'];
$aOid = $myvar['oid'];

foreach ($aAid as $key => $value) {
  $attributes['aid'][$key] = $value;
  $attributes['oid'][$key] = $myvar['oid'][$key];
}

答案 3 :(得分:-1)

您可以使用foreach迭代数组并获取所需的键和值

$attributes = array() 
foreach($myvar as $key => $val) {
   $attributes[$key][0] = $val;
}