从数组到html组合框的数据

时间:2014-06-15 15:23:59

标签: php html mysql arrays oop

我在Continente..Both类中有2个数组,我用mysql数据库中的记录填充数组。

class Continente{
    public $continente = array();
    public $tari= array();

}

我有一个对象,我称这些方法将数据放入我的数组中。

$cont = new Continente;
$cont->setContinente();
$cont->setTari();

现在数组看起来像这样:

 Array ( 
[0] => Array ( [Id] => 1 [Nume] => Europa ) 
[1] => Array ( [Id] => 2 [Nume] => Asia ) 
[2] => Array ( [Id] => 3 [Nume] => Africa ) ) 

Array 
( [0] => Array ( [Id] => 0 [Nume] => Romania [idContinent] => 1 [Populatie] => 2500 )
 [1] => Array ( [Id] => 0 [Nume] => Bulgaria [idContinent] => 1 [Populatie] => 2200 ) 
[2] => Array ( [Id] => 0 [Nume] => Estonia [idContinent] => 1 [Populatie] => 1100 ) 
[3] => Array ( [Id] => 0 [Nume] => Japonia [idContinent] => 2 [Populatie] => 5000 ) 
[4] => Array ( [Id] => 0 [Nume] => China [idContinent] => 2 [Populatie] => 4599 ) 
[5] => Array ( [Id] => 0 [Nume] => India [idContinent] => 2 [Populatie] => 6000 )
 [6] => Array ( [Id] => 0 [Nume] => Egipt [idContinent] => 3 [Populatie] => 444 ) )

现在我需要与3大洲制作一个combox,并且对于所选择的每个大洲,我需要打印前3个国家/地区,按照“Populatie”中的最大数字排序。

所以我可以选择各大洲的国家...我有Id = idContinent。

现在我真的不知道该怎么做。在php中为此写一个方法?因为我已经拥有数组......或者html?

这是我试过的:

<html>
    <head></head>
    <body>
              <div>
                <br>
                <select>

                    <?php 
                        foreach($cont->tari as $val ){
                            echo '<option value="'.$val.'">'.$val.'</option>';
                        }
                    ?>
                </select>


            </div>

    </body>


</html>

1 个答案:

答案 0 :(得分:1)

如果你能做到这一点,我认为你可以清理你的数据结构,这样可以更容易地完成你想要做的事情。如果您存储这样的信息:

$data = array( Europa => array (Romania => 2500, 
                                Bulgaria => 2200,
                                Estonia => 1100 ),
               Asia => array ( Japonia => 5000,
                                China => 4599,
                                India => 6000 ) 
                                ...);

然后你可以消除对你的&#34; ID&#34;键,只需使用ID的数组索引。

然后,您可以使用arsort()按值对子阵列进行排序。像这样:

foreach( $data as $cont => $pop_data ) {
     arsort( $pop_data );
}

然后,要创建组合框,请使用类似的代码:

foreach( $data as $cont => $pop_data ) {
    echo $cont . " Population Info:" . "<br>"; // or whatever
    foreach( $pop_data as $country => $pop ) {
         echo '<option value="'.$pop.'">'.$pop.'</option>';
     }
 }