1

我无法preg_match_all将字符串拆分为键值对。我的字符串的一个例子:

"%Title:Movie%Sortable%Writer:%Indexed:false%"

我期望的结果如下:

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

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

4

2 回答 2

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;
}
于 2013-09-03T03:51:29.823 回答
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);
?>
于 2013-09-03T03:54:19.230 回答