Php 检查多维数组中特定键处的值

Php 检查多维数组中特定键处的值,php,html,Php,Html,我正在建立一个包含多个类别的投资组合。 我有一个多维数组 $allProjects = array( 'project1' => array('corporate', 'web'), 'project2' => array('corporate', 'print', 'animation'), 'project3' => array('web') ); 如果存在值(例如“web”),我需要在特定键(例如“project1”)处签入多维数组 所以我猜像这

我正在建立一个包含多个类别的投资组合。 我有一个多维数组

$allProjects = array(
    'project1' => array('corporate', 'web'),
    'project2' => array('corporate', 'print', 'animation'),
    'project3' => array('web')
);
如果存在值(例如“web”),我需要在特定键(例如“project1”)处签入多维数组

所以我猜像这样的事情

$project = $_GET('project'); //this is the project that is displayed
$category = 'print' //for example, I would redefine this variable for each category.

foreach ($allProjects as $project => $categories) {
if in_array($category, $project);
echo 'yes';
}
我使用上面定义的$project变量作为键,但这不起作用。我只想使用项目的名称(在$project中定义)作为in_数组函数的键,并检查值中$category的外观

感谢您的帮助

试试这个:

$project = $_GET['project'];
$category = 'print';

$categories = $allProjects[$project];
if (!empty($categories) && in_array($category, $categories)) {
    echo 'yes';
}
试试这个:

$project = $_GET['project'];
$category = 'print';

$categories = $allProjects[$project];
if (!empty($categories) && in_array($category, $categories)) {
    echo 'yes';
}

您想要的不需要循环:

<?php
$allProjects = array(
   'project1' => array('corporate', 'web'),
   'project2' => array('corporate', 'print', 'animation'),
   'project3' => array('web')
);

$project = $_GET['project'];
$category = 'print';
if(in_array($category, $allProjects[$project])) {
   echo 'yes';
}
?>

您想要的不需要循环:

<?php
$allProjects = array(
   'project1' => array('corporate', 'web'),
   'project2' => array('corporate', 'print', 'animation'),
   'project3' => array('web')
);

$project = $_GET['project'];
$category = 'print';
if(in_array($category, $allProjects[$project])) {
   echo 'yes';
}
?>


使用
$\u GET
设置
$project
,然后在
foreach
循环中重新分配它。有什么原因吗?您可以使用
$设置
$项目
\u GET
,然后在
foreach
循环中重新分配它。有什么原因吗?我试过了,但是。它说:“函数名必须是字符串”,参考这一行:$project=$\u GET('project');二,。它回显5次“是”,这只能是具有该特定类别的所有项目的数量(在本例中为“打印”)$\u GET是一个数组,而不是一个函数。它被用作$u GET['key']。你问题中的代码实际上也无法运行,但我猜条件从未计算过,所以它总是打印出来。我试过了,但是…1。它说:“函数名必须是字符串”,参考这一行:$project=$\u GET('project');二,。它回显5次“是”,这只能是具有该特定类别的所有项目的数量(在本例中为“打印”)$\u GET是一个数组,而不是一个函数。它被用作$u GET['key']。您的问题中的代码实际上也无法运行,但我猜条件从未计算过,所以它总是打印出来。