PHP - 检查多维数组中的键是真还是假

PHP - check if key in multidimensional array is true or false

我正在尝试根据多维数组中的三个布尔值设置变量的值,但在访问它时遇到问题。我对 PHP 和 Javascript 有点陌生。

在我的表单数据 var_dump 之后(使用 $http 从 angular 传递到外部 PHP 文件)我剩下:

array(3) {
  ["selectedServices"]=>
  array(3) {
    ["test"]=>
    bool(true)
    ["test2"]=>
    bool(false)
    ["test3"]=>
    bool(false)
  }
  ["otherstuff"]=>
  string(10) "coolfield"
  ["smsDelRep"]=>
  bool(false)
}

现在我正在尝试基于 "selectedServices" 创建一个变量,但到目前为止所有尝试都失败了,我什至无法访问它。

目前我拥有的是:

$_POST = json_decode(file_get_contents('php://input'), true);

    $selectedServices = array($_POST['selectedServices']);
    if (in_array('test', $selectedServices, true)) {
        $allowedServices = '1';
        var_dump($allowedServices);

但我没有得到 var_dump,所以我猜 if 语句 returns 是错误的。但是为什么?

In_array 检查值,而不是键,你可以这样做:

if(isset($selectedServices['test']) {
  //
}

编辑:这不是一个完美的解决方案,如果 $selectedServices['test'] 为空,它将不起作用

改用array_key_exist:

if(array_key_exists('test', $selectedServices)) {
  //
}

但是你的代码有错误:

 $selectedServices = array($_POST['selectedServices']);

应该是

$selectedServices = $_POST['selectedServices'];