重组数组:奇数条目为KEY,偶数条目为VALUE

csh*_*fie 8 php arrays reorganize

我正在尝试完成我为自定义MVC框架创建的URL路由器.我有一个从URL解析的参数列表,但问题是它们只有数字键.我想要做的是设置它,以便$ params数组中的第一个值是KEY,然后数组中的第二个值是第一个KEY的VALUE.但我需要更进一步.基本上,我需要将数组中的所有奇数键值作为新KEY,将偶数键的值作为值.

例:

这就是当前设置的方式:

Array
(
  [0] => greeting
  [1] => hello
  [2] => question
  [3] => how-are-you
  [4] => response
  [5] => im-fine
)
Run Code Online (Sandbox Code Playgroud)

这是它需要的(转换后):

Array
(
  [greeting] => hello
  [question] => how-are-you
  [response] => im-fine
)
Run Code Online (Sandbox Code Playgroud)

当我从URL字符串中取出字符串后,当我用"/"分隔符分解字符串时,创建这种类型的数组会更容易吗?如果是这样,那最好的功能是什么?

这可能是一个简单的解决方案,因为我确信这是一个常见的问题,但任何启示?

Lin*_*een 8

也许array_splice()用于此?

$result = array();

while (count($urls)) {
    list($key,$value) = array_splice($urls, 0, 2);
    $result[$key] = $value;
}
Run Code Online (Sandbox Code Playgroud)

这将从URL列表中提取前两个条目,并将其用作结果数组的键和值.重复,直到源列表为空.