php要怎么定义如下格式的数组,下面是js初始化的一个数组:
var menu = [
{'val': '0', 'txt': '请选择'}, {'val': '1','txt': '广西', 'menu': [
{'val': '3','txt': '南宁','menu': [
{'val': '7','txt': '崇左'}
]},
{'val': '4','txt': '桂林'}
]}, {'val': '2','txt': '河北', 'menu': [
{'val': '5','txt': '石家庄'},
{'val': '6','txt': '唐山'}
]}];我要完整的,别给省略号让我自己推
var menu = [
{'val': '0', 'txt': '请选择'}, {'val': '1','txt': '广西', 'menu': [
{'val': '3','txt': '南宁','menu': [
{'val': '7','txt': '崇左'}
]},
{'val': '4','txt': '桂林'}
]}, {'val': '2','txt': '河北', 'menu': [
{'val': '5','txt': '石家庄'},
{'val': '6','txt': '唐山'}
]}];我要完整的,别给省略号让我自己推
$arr = array(...);
{'val': '0', 'txt': '请选择'}, {'val': '1','txt': '广西', 'menu': [
{'val': '3','txt': '南宁','menu': [
{'val': '7','txt': '崇左'}
]},
{'val': '4','txt': '桂林'}
]}, {'val': '2','txt': '河北', 'menu': [
{'val': '5','txt': '石家庄'},
{'val': '6','txt': '唐山'}
]}];";preg_match_all("/'val': '(.*?)','txt': '(.*?)'/",$string,$matched);
print_r($matched);
没实测。menu下一级可能不能正确识别。
[
{'val': '0', 'txt': '请选择'}, {'val': '1','txt': '广西', 'menu': [
{'val': '3','txt': '南宁','menu': [
{'val': '7','txt': '崇左'}
]},
{'val': '4','txt': '桂林'}
]}, {'val': '2','txt': '河北', 'menu': [
{'val': '5','txt': '石家庄'},
{'val': '6','txt': '唐山'}
]}]
JSON;
$s = iconv('gbk', 'utf-8', $s); //如果不是 utf-8 编码的,就要有这句
$s = str_replace("'", '"', $s);
$p = json_decode($s, 1);
var_export($p);
得到
array (
0 =>
array (
'val' => '0',
'txt' => '请选择',
),
1 =>
array (
'val' => '1',
'txt' => '广西',
'menu' =>
array (
0 =>
array (
'val' => '3',
'txt' => '南宁',
'menu' =>
array (
0 =>
array (
'val' => '7',
'txt' => '崇左',
),
),
),
1 =>
array (
'val' => '4',
'txt' => '桂林',
),
),
),
2 =>
array (
'val' => '2',
'txt' => '河北',
'menu' =>
array (
0 =>
array (
'val' => '5',
'txt' => '石家庄',
),
1 =>
array (
'val' => '6',
'txt' => '唐山',
),
),
),
)
如何写代码,应该很简单了