基于数组 - PHP从数组创建关联数组

时间:2012-11-16 15:46:45

标签: php arrays associative-array

我有一个独特的问题,我从未听说过以前可以做的事情:

所以基本上我有一个函数,它接受一个参数数组,例如:

function someFunction(array $arguments){}

然后给我一个阵列:

array('option1', 'option2', 'options3', ...);

然后我需要获取该数组并循环创建一个关联数组,例如:

array('option1' => call_come_method('option1'), .... );

继承人,你永远不会知道用户传递给函数的参数有多少,但是每个参数都需要创建一个key =>值排列,如上所示。

现在我做了一些研究,我被告知了$argv command in php,在这种情况下我怎么能实现它。

所以,如果任何人能给我任何指示,我将非常感激。

2 个答案:

答案 0 :(得分:2)

这比你想象的容易得多。首先使用array_flip来切换数组的键和值。

$newArray = array_flip($arguments);

然后循环然后调用方法:

foreach($newArray as $key=>&$val){
    $val = call_come_method($key);
}

&使其成为引用,因此更新了数组值。

DEMO:http://codepad.org/giL1KPA3

更新:您甚至不需要array_flip,只需要一个for循环。

$newArray = array();
foreach($arguments as $val){
    $newArray[$val] = call_come_method($val);
}

DEMO:http://codepad.org/AQ1gWrou

答案 1 :(得分:1)

  

你永远不会知道用户传入函数的参数数量

仅供参考,您可以通过func_get_args()了解它。

这样您就不需要为函数提供$arguments参数,但只需将其留空即可。