PHP - 检查多维数组中的键是true还是false

时间:2016-02-19 10:03:58

标签: php angularjs webforms

我正在尝试根据多维数组中的三个布尔值来设置变量的值,但是我无法访问它。我是PHP和Javascript的新手。

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

Build variants

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

目前这就是我所拥有的:

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

但我没有得到var_dump所以我猜测if语句返回false。但为什么呢?

1 个答案:

答案 0 :(得分:2)

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

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

编辑:这不是一个完美的解决方案,如果$ selectedServices ['test']为null则无效

改为使用array_key_exist:

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

但您的代码中存在错误:

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

应该是

$selectedServices = $_POST['selectedServices'];