我无法使用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
中使用正确的正则表达式是什么?
答案 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);
?>