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'];
我正在尝试根据多维数组中的三个布尔值设置变量的值,但在访问它时遇到问题。我对 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'];