当我加载数据库单个数据时,它看起来像数组, 但我不知道如何获得label_values中的值
的print_r($结果):
Array ( [custom_params] => custom_limit="0"|input_label="{\"label_values\":[\"\u9650\u5916\u5e36\",\"\u9650\u5167\u7528\",\"\u9650\u6642\u5546\u54c1\",\"\u514d\u9810\u7d04\",\"\u5373\u8cb7\u5373\u7528\",\"\u672c\u9031\u5f37\u6a94\",\"\u611b\u5fc3\u516c\u76ca\"]}"|repeat_label=""| )
json_encode($结果):
{"custom_params":"custom_limit=\"0\"|input_label=\"{\\\"label_values\\\":[\\\"\\u9650\\u5916\\u5e36\\\",\\\"\\u9650\\u5167\\u7528\\\",\\\"\\u9650\\u6642\\u5546\\u54c1\\\",\\\"\\u514d\\u9810\\u7d04\\\",\\\"\\u5373\\u8cb7\\u5373\\u7528\\\",\\\"\\u672c\\u9031\\u5f37\\u6a94\\\",\\\"\\u611b\\u5fc3\\u516c\\u76ca\\\"]}\"|repeat_label=\"\"|"}
尝试了foreach第一个lavel:
foreach($results as $k=>$v){
echo $v;
}
得到:
custom_limit="0"|input_label="{\"label_values\":[\"\u9650\u5916\u5e36\",\"\u9650\u5167\u7528\",\"\u9650\u6642\u5546\u54c1\",\"\u514d\u9810\u7d04\",\"\u5373\u8cb7\u5373\u7528\",\"\u672c\u9031\u5f37\u6a94\",\"\u611b\u5fc3\u516c\u76ca\"]}"|repeat_label=""|
但不知道如何获得价值......
非常感谢任何帮助!
答案 0 :(得分:1)
$results['custom_params']
是由key=value
对组成的竖线分隔列表,因此您需要将其拆分。 input_label
值有JSON,您可以使用json_decode
进行解析。
此外,您需要删除值中引号前的反斜杠。
$custom_params = explode('|', $results['custom_params']);
foreach ($custom_params as $param) {
if (preg_match('/^input_label="(.*)"$/', $param, $match)) {
$input_label = json_decode(str_replace('\"', '"', $match[1]), true);
$label_values = $input_label['label_values'];
break;
}
}