我想让我的类别菜单响应所显示的项目。 这些项目有多个类别,因此多个类别菜单链接可以处于事件状态。 无论项目属于哪个类别,都在多维数组中包含的 php 文件中指定...
例如
$allProjects = array(
'project1' => array('corporate'),
'project2' => array('corporate', 'print'),
'project3' => array('web')
);
现在我想检查每个类别是否是数组 $allProjects 中数组“project1”、“project2”、“project3”...的值,如果是,则回显“active”。
到目前为止我已经...
<?php if (($_GET['cat'] == 'corporate')) {echo 'active';}; || if (isset ($_GET['project'])) {if in_array('corporate', $_GET['project']) {echo 'active';}; ?>
这有意义吗?
更新:
我需要的是检查特定键(第二级数组)的多维数组中是否存在值(第三级数组)
所以我猜是这样的......
$project = $_GET('project');
$category = $_GET('cat');
foreach ($allProjects as $project => $categories) {
if in_array($category, $project);
echo 'yes';
}
我使用上面定义的 $project 变量作为键,但这不起作用。它期望参数是数组。我想要的只是使用项目名称(在 $project 中定义)作为 in_array 函数的键,并检查值中 $category 的出现。
感谢帮助
最佳答案
您可以使用array_search()
来搜索数组中的特定值。如果找到该函数,则返回与该值对应的键,否则返回 false。
所以你要做的是循环每个子数组:
$category = $_GET['cat'];
$allProjects = array(
'project1' => array('corporate'),
'project2' => array('corporate', 'print'),
'project3' => array('web')
);
foreach ($allProjects as $projectName => $categories) {
$categoryIndex = array_search($category, $categories);
if ($categoryIndex !== false) {
echo 'active: ' . $categoryIndex;
// Do something with $categoryIndex and $projectName here
}
}
更新:
看起来这就是你的答案:
$project = $_GET('project');
$category = $_GET('cat');
if (isset($allProjects[$project]) && in_array($category, $allProjects[$project])) {
echo 'yes';
}
关于php - 检查多维数组中是否存在值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30982742/