2013-10-05 52 views
0

我想做一個網站(不要問它是什麼),我需要幫助。 我創造了這個頁面調用meallist.php:在使用foreach循環多維數組時使用名稱?

<?php 
/* Ingredients List */ 
$meatlist = array(tavuketi => "Tavuk Eti", 
        baliketi => "Balık Eti"); 

$vegelist = array(domates => "Domates", 
        patates => "Patates", 
        salatalik => "Salatalık"); 

/* The Meals - dun dun duuuunnnnnn */ 

$yemekaralist = array(mangaldatavuk => array(
              name => "Mangalda Tavuk", 
              ing1 => tavuketi), 
         mangaldapatateslitavuk => array( 
              name => "Mangalda Patatesli Tavuk", 
              ing1 => tavuketi, 
              ing2 => patates), 
         mangaldabalik => array(
              name => "Mangalda Balık", 
              ing1 => baliketi), 
         firindapatateslibalik => array(
              name => "Fırında Patatesli Balık", 
              ing1 => baliketi, 
              ing2 => patates)); 

?> 

你的想法。我做了一個的index.php foreach循環,創建一個選擇:

<div id="etler"> 
<select multiple="multiple" name="selectMeal[]" size="4" data-max-length="30"> 
<?php 
foreach($meatlist as $id => $name) 
{ 
    print "<option value=\"" . $id . "\">" . $name . "</option>"; 
} 

?> 
</select> 
</div> 
<div id="sebze"> 
<select multiple="multiple" name="selectMeal[]" size="4" data-max-length="30"> 
<?php 
foreach($vegelist as $id1 => $name1) 
{ 
    print "<option value=\"" . $id1 . "\">" . $name1 . "</option>"; 
} 

?> 
</select> 
</div> 

而且這職位selectMeal [],並得到其放入searchmeal.php $搜索。我想要的是,我希望它在meallist.php中搜索$ yemekaralist,並檢查ing1(和ing2是否可用),如果它與selectMeal []數組匹配,並且打印名稱=>「something」(如果可用)。我怎樣才能做到這一點?

最好的問候, mission712

+0

不要你需要使用數組定義字符串,而不是常量? '$ meatlist = array('tavuketi'=>「Tavuk Eti」,'baliketi'=>「BalıkEti」);' – Yaroslav

+0

是的,你說得對。我不是很先進的PHP。 :) – mission712

回答

0

你可以改變$結構yemekaralist?

如果你改變了結構,這樣的事情這將簡化你的算法:

$yemekaralist = array(
    item1 => array(
     'name' => 'item1_name', 
     'ingredients' => array('tavuketi', 'patates'), 
    ), 
    item2 => array(
     'name' => 'item2_name', 
     'ingredients' => array('tavuketi', 'patates'), 
    ), 

然後是這樣的:

foreach ($yemekaralist as $item) { 
    foreach ($item['ingredients'] as $ingredient) { 
     foreach ($selectMeal as $selectedMeal) { 
      if ($selectedMeal == $ingredient) { 
       echo $item['name']; 
      } 
     } 
    } 
} 
+0

你先生,只是我的一天。但我想問一個問題。如果selectMeal []等於$成分,它現在顯示結果_only_。我怎樣才能解決這個問題? – mission712

+0

我不明白......你究竟想要展示什麼? – Noquepoaqui

+0

對不起,我一直很忙。我想要顯示僅包含selectMeal []中的成分的項目。另一方面,如果selectMeal []包含tavuketi,但不包含patate等,則不會顯示mangaldapatateslitavuk。我可以用in_array()來做到嗎? – mission712