如何在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);