Intereting Posts
var_dump и simpleXML? PHP DateTime __construct () Не удалось проанализировать строку времени (xxxxxxxx) в позиции x Предупреждение: mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, объект указан Как найти длину строки в php без использования strlen ()? Ошибка PHP / Apache в скрипте (ошибка сегментации (11) Можно ли безопасно использовать str_replace в кодированной кодировке UTF-8, если в качестве аргументов заданы только строки с кодировкой UTF-8? Использование параметров для mysql_query Как проверить, находится ли целое число в диапазоне чисел в PHP? Создание случайных результатов по весу в PHP? как показать текст при вводе текста в jquery Как выполнить запрос / найти CACHE с помощью PAGINATION CakePhp 2.x? Каков наилучший способ хранения динамических настроек в php? Как удалить папку с содержимым с помощью PHP cakephp3 не может вставлять данные в связанные таблицы, используя метод 'associated' Почему нет больше двоичных файлов Windows для расширений PECL, таких как pecl_http?

PHP – разбиение строк в парах ключ / значение

У меня есть строка вроде этого:

key = значение, key2 = значение2

и я хотел бы разобрать его примерно так:

array( "key" => "value", "key2" => "value2" ) 

Я мог бы сделать что-то вроде

 $parts = explode(",", $string) $parts = array_map("trim", $parts); foreach($parts as $currentPart) { list($key, $value) = explode("=", $currentPart); $keyValues[$key] = $value; } 

Но это кажется смешным. Должен быть какой-то способ сделать это умнее с PHP правильно?

Related of "PHP – разбиение строк в парах ключ / значение"

Если вы не возражаете использовать регулярное выражение …

 $str = "key=value, key2=value2"; preg_match_all("/([^,= ]+)=([^,= ]+)/", $str, $r); $result = array_combine($r[1], $r[2]); var_dump($result); 
 <?php parse_str(str_replace(", ", "&", "key=value, key2=value2"), $array); ?> 

если вы измените свою строку, чтобы использовать & вместо parse_str() , в качестве разделителя, вы можете использовать parse_str()

Если вы можете изменить формат строки, чтобы она соответствовала строке запроса URL (используя & вместо, кроме всего прочего, вы можете использовать parse_str . Обязательно используйте параметр двух параметров.