php数组处理问题

时间:2009-06-10 15:54:00

标签: php

在我编写自己的函数之前,是否有任何内置函数或简单的单行转换:

Array
(
    [0] => pg_response_type=D
    [1] => pg_response_code=U51
    [2] => pg_response_description=MERCHANT STATUS
    [3] => pg_trace_number=477DD76B-B608-4318-882A-67C051A636A6
)

分为:

Array
(
    [pg_response_type] => D
    [pg_response_code] =>U51
    [pg_response_description] =>MERCHANT STATUS
    [pg_trace_number] =>477DD76B-B608-4318-882A-67C051A636A6
)

试图避免重新发明轮子。我总是可以循环使用它并使用爆炸。

4 个答案:

答案 0 :(得分:3)

  

我总是可以循环使用它并使用爆炸。

这就是你应该做的。

答案 1 :(得分:0)

编辑 - 根本没有正确阅读问题,哎呀..

通过数组的foreach是最快的方法,例如

foreach($arr as $key=>$val)
{
    $new_vals = explode("=", $val);
    $new_arr[$new_vals[0]] = $new_vals[1];
}

答案 2 :(得分:0)

这应该是大约五行代码。我已经完成PHP了一段时间,但这里有一些伪代码

foreach element in the array
explode result on the equals sign, set limit = 2
assign that key/value pair into a new array.

当然,这会破坏具有多个等号的键,因此,您是否希望允许键在其中具有等号,这取决于您。

答案 3 :(得分:0)

你可以这样做:

$foo = array(
    'pg_response_type=D',
    'pg_response_code=U51',
    'pg_response_description=MERCHANT STATUS',
    'pg_trace_number=477DD76B-B608-4318-882A-67C051A636A6',
);

parse_str(implode('&', $foo), $foo);

var_dump($foo);

请务必将此代码封装在名称传达意图的函数中。