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': '唐山'}
  ]}];我要完整的,别给省略号让我自己推

解决方案 »

  1.   

    我要的是:
    $arr = array(...);
      

  2.   

    $string="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': '唐山'}
      ]}];";preg_match_all("/'val': '(.*?)','txt': '(.*?)'/",$string,$matched);
    print_r($matched);
    没实测。menu下一级可能不能正确识别。
      

  3.   

    由$s = <<< JSON
    [
      {'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' => '唐山',
          ),
        ),
      ),
    )
    如何写代码,应该很简单了
      

  4.   

    $menu=array(array('val'=>'0','txt'=>'请选择'),array('val'=>'1','txt'=>'广西', 'menu'=>array('val'=>'3','txt'=>'南宁','menu'=>array('val'=>'7','txt'=>'崇左')),array('val'=>'4','txt'=>'桂林')),array('val'=>'2','txt'=>'河北', 'menu'=>array('val'=>'5','txt'=>'石家庄'),array('val'=>'6','txt'=>'唐山')));