Php 在使用foreach循环多维数组时使用名称?
我正在尝试做一个网站(不要问它是什么),我需要帮助。 我创建了这个名为meallist.php的页面:Php 在使用foreach循环多维数组时使用名称?,php,arrays,multidimensional-array,foreach,include,Php,Arrays,Multidimensional Array,Foreach,Include,我正在尝试做一个网站(不要问它是什么),我需要帮助。 我创建了这个名为meallist.php的页面: <?php /* Ingredients List */ $meatlist = array(tavuketi => "Tavuk Eti", baliketi => "Balık Eti"); $vegelist = array(domates => "Domates", patates =&g
<?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循环,创建了一个select:
<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>
它将selectMein[]发布到searchMein.php中的$search中。我想要的是,我想让它在meallist.php中搜索$yemekaralist,检查ing1(和ing2,如果可用)是否与selectMein[]数组匹配,并打印name=>“something”(如果可用)。我该怎么做
致以最良好的祝愿,
任务712你能改变$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'];
}
}
}
}
然后像这样:
$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'];
}
}
}
}
您不需要在数组定义中使用字符串而不是常量吗<代码>$meatlist=array('tavuketi'=>“Tavuk Eti”、'baliketi'=>“Balık Eti”)是的,你是对的。我对php不是很在行。:)先生,你让我高兴极了。但我想问一个问题。现在,仅当SelectDime[]等于$Component时,才会显示结果。我怎样才能解决这个问题?我不明白。。。你到底想展示什么?对不起,我一直很忙。我想显示仅包含SelectMe餐[]中成分的项目。另一方面,如MangalDapateAttaVuk,如果SelectMein[]不包含tavuketi但不包含Patate等,则不会显示Tavuk。我可以用in_array()实现吗?