Самый быстрый способ преобразовать строку типа id = 1 & type = 2 в массив в PHP? - PullRequest
3 голосов
/ 14 января 2010

Мне нужно изменить его на:

$arr['id']=1;

$arr['type']=2;

Ответы [ 5 ]

7 голосов
/ 14 января 2010

Использование: parse_str () .

void parse_str(string $str [, array &$arr])  

Анализирует str, как если бы это была строка запроса, переданная через URL, и устанавливает переменные в текущей области видимости.

Пример:

<?php
    $str = "first=value&arr[]=foo+bar&arr[]=baz";
    parse_str($str);
    echo $first;  // value
    echo $arr[0]; // foo bar
    echo $arr[1]; // baz

    parse_str($str, $output);
    echo $output['first'];  // value
    echo $output['arr'][0]; // foo bar
    echo $output['arr'][1]; // baz

?>
3 голосов
/ 14 января 2010

Если вы хотите проанализировать то, что выглядит как строка запроса, просто используйте parse_str():

$input = 'id=1&type=2';
$out = array();
parse_str($input, $out);
print_r($out);

Выход:

Array
(
    [id] => 1
    [type] => 2
)

При желании вы можете не передавать второй параметр, и parse_str() вместо этого будет вводить переменные в текущую область. Не делайте этого в глобальной области видимости . И я могу поспорить, не делай этого вообще. По той же причине, что register_globals() это плохо.

2 голосов
/ 14 января 2010

См. parse_str.

1 голос
/ 14 января 2010
$arr = array();
$values = explode("&",$string);
foreach ($values as $value)
{
  array_push($arr,explode("=",$value));
}
0 голосов
/ 14 января 2010

Используйте parse_str() со вторым аргументом , например:

$str = 'id=1&type=2';

parse_str($str, $arr);

$arr будет содержать:

Array
(
    [id] => 1
    [type] => 2
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...