字符串到关联数组

时间:2013-09-03 03:42:52

标签: php regex arrays

我无法使用preg_match_all将字符串拆分为键值对。我的字符串示例:

  

“%名称:电影%可排序%作家:%索引:假%”

我期望的结果如下:

$result['Title'] = 'Movie';
$result['Sortable'] = '';
$result['Writer'] = '';
$result['Indexed'] = 'false';

我可以使用preg_match('/%/',$str,-1,PREG_SPLIT_NO_EMPTY);拆分字符串,但它会返回一个索引数组。我需要一个关联数组,以便顺序不重要,我可以在switch语句中使用该键。在preg_match_all中使用正确的正则表达式是什么?

2 个答案:

答案 0 :(得分:4)

尝试:

$input  = "%Title:Movie%Sortable%Writer:%Indexed:false%";
$output = array();

$data = explode('%', $input);
foreach ($data as $item) {
  list($key, $value) = explode(':', $item);
  $output[$key] = $value;
}

答案 1 :(得分:0)

<?php
$arr = array();
$string = "%Title:Movie%Sortable%Writer:%Indexed:false%";
$d = explode('%', $string);

foreach($d as $item){
   list($key,$value) = explode(':', $item);
   $arr[$key] = $value;

}

print_r($arr);
?>