2014-01-29 3 views
0

Так что я получил это от моего учителя, чтобы закончить, я немного застрял. Я устал от множества методов, но не получаю правильный способ отображения данных.PHP вложенный массив

 <?php 

     /* 
     * Below is an array of cakes and information about them. 
     * Please write a script that generates the following html snippet 
     * 
     * <ul> 
     *  <li>Wedding Cake<br />Flavour: hopes and dreams</li> 
     *  <li>Chocolate Gateau<br />Flavour: chocolate</li> 
     *  <li>Black Forest Gateau<br />Flavour: fruity</li> 
     *  <li>Victoria Sponge<br />Flavour: vanilla</li> 
     *  <li>Tottenham Cake<br />Flavour: strawberry</li> 
     * </ul> 
     * 
     * (html or xhtml <br>/<br /> is fine!) 
     * Note that the list is ordered in descending order of price. 
     */ 

     $cakes = array(
     "chocolate_gateau"=>array(
      "flavour"=>"chocolate", 
      "price"=>3.50), 
     "victoria_sponge"=>array(
      "flavour"=>"vanilla", 
      "price"=>1.50), 
     "black_forest_gateau"=>array(
      "flavour"=>"fruity", 
      "price"=>2.20), 
     "tottenham_cake"=>array(
      "flavour"=>"strawberry", 
      "price"=>0.58), 
     "wedding_cake"=>array(
      "flavour"=>"hopes and dreams", 
      "price"=>5.23) 
     ); 

     /* print_r($cakes); */ 

     function cakeList($cakes) { 
     echo "<ul>"; 

     foreach($cakes as $value) { 

     if(is_array($value)) cakeList($value); 

     else echo '<li>' . $value . '</li>'; 

     } 

     echo "</ul>"; 
     } 

     echo cakeList($cakes); 

     ?> 

Они хотят, чтобы я создал список в html, чтобы отображать данные в комментариях. Есть идеи? Или совет вам, ребята, в переполнении стека, может показать мне, как это происходит, и способы сделать это лучше?

+1

Я не вижу никаких трудностей, но может быть 'нагрузок methods' немного слишком специфичны. Не могли бы вы объяснить еще меньше того, что вы пробовали, и где вы застряли? – njzk2

+1

Каков ваш ожидаемый результат? – rccoros

ответ

3

foreach($someArray as $key => $value)

позволит вам получить ключи массива, а также значение.

записей Также в массиве могут быть захвачены, используя следующий синтаксис:

$a = array("foo"=>"Bar"); 
echo "The value at foo is ".$a['foo']; 

Попытка вас есть может быть обновлена ​​с вышеизложенным, чтобы получить результат, который вам нужен (помните, что вы уже знаете, что $value массив в вашем примере).

0

Для этого вам необходимо отсортировать список по цене, я рекомендую использовать для этого http://php.net/usort. После выяснял сортировки, вы можете в основном цикл по результатам, чтобы напечатать их

function cakeList ($cakes) 
{ 
    echo '<ul>'; 
    foreach ($cakes as $cake => $details) 
    { 
     echo '<li>' . $cake . '<br/>' . $details['flavour'] . '<li/>'; 
    } 
    echo '</ul>'; 
} 
+0

Кресты благодарю вас –

Смежные вопросы