动态生成的手风琴来自php数组

时间:2014-02-17 08:59:41

标签: php html jquery-ui

Heelo。

我有问题,我是php的noob,我想从这个php数组动态生成手风琴。

$main = array ('mainregion1' => array (
        'main_person' => array ( 
            0 => array ( 
                'name' => 'name1', 
                'phone' => '000000000', 
                'email' => 'name@name.com', 
                'important' => true, 
                ),
            ), 
        'subregion1' => array ( 
            0 => array ( 
                'name' => 'name2', 
                'phone' => '000111000', 
                'email' => 'name2@name2.com', 
                'important' => false, 
                ),
            1 => array ( 
                'name' => 'name3', 
                'phone' => '000222000', 
                'email' => 'name3@name3.com', 
                'important' => false, 
                ), 
            ), 
        'subregion2' => array ( 
            0 => array (
                'name' => 'name4', 
                'phone' => '111000111', 
                'email' => 'name4@name4.com',
                'important' => false, 
                ), 
            ),
        ),  
     );
    array ('mainregion2' => array (
        'main_person' => array ( 
            0 => array ( 
                'name' => 'name1', 
                'phone' => '000000000', 
                'email' => 'name@name.com', 
                'important' => true, 
                ),
            ), 
        'subregion1' => array ( 
            0 => array ( 
                'name' => 'name2', 
                'phone' => '000111000', 
                'email' => 'name2@name2.com', 
                'important' => false, 
                ),
            1 => array ( 
                'name' => 'name3', 
                'phone' => '000222000', 
                'email' => 'name3@name3.com', 
                'important' => false, 
                ), 
            ), 
        'subregion2' => array ( 
            0 => array (
                'name' => 'name4', 
                'phone' => '111000111', 
                'email' => 'name4@name4.com',
                'important' => false, 
                ), 
            ),
        ),  
     );

我在html http://jsfiddle.net/msx20/9nk9H/4/中完成了这项工作。我想显示来自“main”数组标记的数据“重要”作为父div并显示它的内容,来自子区域数组的数据显示在下面的儿童div的手风琴中。

但我是php中的noob并且不知道如何做到这一点,我已经尝试了foreach函数,但我不理解mulidimensionals数组并与它们一起玩。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

会是这样的。索引可能不正确,因为我无法在数组中清楚地看到尺寸。

<小时/> 编辑:请注意您的阵列。

改变这个:

'subregion2' => array ( 
        0 => array (
            'name' => 'name4', 
            'phone' => '111000111', 
            'email' => 'name4@name4.com',
            'important' => false, 
            ), 
        ),
    ),  
 );
array ('mainregion2' => array (
    'main_person' => array (
    // code ...

使用:

'subregion2' => array ( 
        0 => array (
            'name' => 'name4', 
            'phone' => '111000111', 
            'email' => 'name4@name4.com',
            'important' => false, 
            ), 
        ),
    ),
'mainregion2' => array (
    'main_person' => array ( 
     // code ...

如果没有,则表示没有key或变量的数组。


试试这个,在我的localhost上测试,它正在运行。

  <?
    foreach($main as $k => $v){
    echo "<div>$k</div>";       
    $array = $v;
    foreach($v as $key => $value){          
        if($key == 'main_person'){
          echo "<div class='main'>";
          echo "<p>Name - ".$value[0]['name']."</p>";
          echo "<p>Phone - ".$value[0]['phone']."</p>";
          echo "<p>Email - ".$value[0]['email']."</p>";
          echo "</div>";
          echo "<div id=\"accordion\">";              
        }
          echo "<h3>$key</h3>";
          if(sizeof($value)>1){             
              $subReg = $value;
              foreach ($subReg as $sK => $sV) {
              echo "<div>";
              echo "<p>Name - ".$sV['name']."</p>";
              echo "<p>Phone - ".$sV['phone']."</p>";
              echo "<p>Email - ".$sV['email']."</p>";
              echo "</div>";                  
              }              
          }else{
              echo "<div>";
              echo "<p>Name - ".$value[0]['name']."</p>";
              echo "<p>Phone - ".$value[0]['phone']."</p>";
              echo "<p>Email - ".$value[0]['email']."</p>";
              echo "</div>";

        }           
    }
    echo "</div>";
}   
  ?>