2012-11-16 56 views
0

我有一个独特的问题,我从来没有听说过这是可以做到前:创建从一个数组的关联数组,基于阵列上 - PHP

所以基本上我有一个函数,它在一个的参数如数组:

function someFunction(array $arguments){} 

,并给了我一个数组回来这样:

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

那么我就需要采取数组和循环通过它创建一个关联数组,如:

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

继承人的踢球,你永远不会知道有多少参数的用户传递过来的功能,但每一个需要创建成键=>值排列由上述可见。

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

所以,如果任何人可以给我任何指针,我会很感激。

+1

哪个函数不知道将传入多少个参数? –

+2

'$ argv'在这里看起来并不重要。通常在使用命令行实用程序运行脚本时使用。 –

+0

“你永远不会知道用户传入函数”...'count($ arguments)''有多少个参数? –

回答

2

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

$newArray = array_flip($arguments); 

然后循环尽管它并调用该方法:

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

&,使得它的基准,所以该阵列值被更新。

DEMO:http://codepad.org/giL1KPA3

UPDATE:你甚至都不需要array_flip,你只需要一个for循环。

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

DEMO:http://codepad.org/AQ1gWrou

1

你永远不会知道有多少参数的用户进入到功能

仅供参考,你得到func_get_args()知道。

通过这种方式,您无需为参数提供$arguments参数,但只需将其保留为空即可。