如何在PHP中将键/值链解析为关联数组?

如何在PHP中将键/值链解析为关联数组?,php,arrays,Php,Arrays,我有一个字符串,看起来像:key1/value1/key2/value2/等等 我在那上面做了一个爆炸('/',修剪($mystring'/')) 现在我想要一个关联数组,如: array( 'key1' => 'value1', 'key2' => 'value2', ... ); 当然,我可以使用for循环来实现,在这个循环中,我总是读取两个条目并将它们放入目标数组中,但难道没有更高效、更优雅的方法吗?一个带有一些php核心函数的单行程序,类似于·list()·或其他什

我有一个字符串,看起来像:
key1/value1/key2/value2/
等等

我在那上面做了一个
爆炸('/',修剪($mystring'/'))

现在我想要一个关联数组,如:

array(
 'key1' => 'value1',
 'key2' => 'value2',
  ...
);

当然,我可以使用for循环来实现,在这个循环中,我总是读取两个条目并将它们放入目标数组中,但难道没有更高效、更优雅的方法吗?一个带有一些php核心函数的单行程序,类似于·list()·或其他什么?

一个人可以始终使自己成为一个单行程序

这称为

无需设计丑陋的东西,只需不惜任何代价设计一个衬里。
制作您自己的功能,您将获得更短、更干净、更可靠的结果。

一个函数,它不仅可以执行基本的字符串操作,还可以执行更智能的操作,比如参数验证

如果格式没有改变(我的意思是它始终是Key1/value1/key2/value2),那么应该很简单

爆炸后,您将看到以下内容:

$arr = Array('key1','value1','key2','value2')
因此,您现在可以执行以下操作:

$new_arr = array();
$i = 0;    
for($i=0;$i<count($arr);$i+=2)
{
   $new_arr[$arr[i]] = $arr[$i+1];
}
吻:)

使用带有回调函数的数组_walk()的方法:

function buildNewArray($value, $key, &$newArray) {
    (($key % 2) == 0) ? $newArray[$value] = '' : $newArray[end(array_keys($newArray))] = $value;
}

$myString = 'key1/value1/key2/value2/';
$myArray = explode('/',trim($myString,'/'));

$newArray = array();
array_walk($myArray, 'buildNewArray', &$newArray);

var_dump($newArray);

很可能不是。但是,您可以定义自己的函数并重用它,然后您就有了一行代码;)
function buildNewArray($value, $key, &$newArray) {
    (($key % 2) == 0) ? $newArray[$value] = '' : $newArray[end(array_keys($newArray))] = $value;
}

$myString = 'key1/value1/key2/value2/';
$myArray = explode('/',trim($myString,'/'));

$newArray = array();
array_walk($myArray, 'buildNewArray', &$newArray);

var_dump($newArray);