2011-09-25 18 views
1

如何内爆2个值,1作为关键字,另一个作为值。说我有:内爆关键值

$string = 'hello_world'; 

$arg = explode('_', $string); 

我现在有$arg[0]$arg[1](如你所知)

我怎么能是发生内爆所以它成为这种结构

Array (
    'hello' => 'world' 
) 
+0

手动,没有这样的神奇功能 – zerkms

回答

4
$array = array($arg[0] => $arg[1]); 
3

我不是确定如果你正在寻找这样一个明显的东西:

$arg = explode('_', 'hello_world'); 
print_r(array($arg[0] => $arg[1])); 

我认为这比这更复杂一点。也许这个字符串包含多个这些东西。例如:'hello_world,foo_bar,stack_overflow'。在这种情况下,你需要用逗号第一爆炸:

$args = explode(',', 'hello_world,foo_bar,stack_overflow'); 
$parsed = array(); 

foreach($args as $arg) { 
    list($key, $value) = explode('_', $arg); 
    $parsed[$key] = $value; 
} 
+0

那是“明显的”,我们都有这些时刻哈哈。 – daryl

2
$string = 'hello_world'; 
$arg = explode('_', $string); 
$array = array($arg[0] => $arg[1]); 

将是最快的方式

4

这里有一个有趣的方式来做到这一点,而不需要中间ARGS;)

$string = "hello_world"; 
$result = call_user_func_array("array_combine", array_chunk(explode("_", $string), 1));