вопрос обработки массива php - PullRequest
2 голосов
/ 10 июня 2009

Прежде чем я напишу свою собственную функцию для этого, есть ли встроенная функция или простая однострочная для преобразования:

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 ]

3 голосов
/ 10 июня 2009

Я всегда могу пройти через это и использовать взрыв.

это то, что вы должны сделать.

0 голосов
/ 10 июня 2009

Вы можете сделать это так:

$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);

Обязательно инкапсулируйте этот код в функцию, имя которой передает намерение.

0 голосов
/ 10 июня 2009

Это должно быть около пяти строк кода. Прошло некоторое время с тех пор, как я сделал PHP, но вот какой-то псевдокод

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

Конечно, это разбивает ключи, имеющие более одного знака равенства, так что вам решать, хотите ли вы, чтобы ключи имели знаки равенства.

0 голосов
/ 10 июня 2009

Редактировать - вопрос совсем не прочитан, упс ..

A foreach через массив - самый быстрый способ сделать это, например,

foreach($arr as $key=>$val)
{
    $new_vals = explode("=", $val);
    $new_arr[$new_vals[0]] = $new_vals[1];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...