Php 如何检查不在数组元素中
我正在尝试检查数组中是否有元素不在要重定向页面的范围内: 我的代码如下:Php 如何检查不在数组元素中,php,arrays,cakephp,Php,Arrays,Cakephp,我正在尝试检查数组中是否有元素不在要重定向页面的范围内: 我的代码如下: $id = $access_data['Privilege']['id']; if(!in_array($id,$user_access_arr)) { $this->Session->setFlash(__('Access Denied! You are not eligible to access this.'), 'flash_custom_success'); return $thi
$id = $access_data['Privilege']['id'];
if(!in_array($id,$user_access_arr))
{
$this->Session->setFlash(__('Access Denied! You are not eligible to access this.'), 'flash_custom_success');
return $this->redirect(array('controller'=>'Dashboard','action'=>'index'));
}
我不知道如何检查元素是否不在数组中。
因为我们可以使用PHP的in_array
函数检查数组中是否存在元素。
我试图使用(!in_array)
检查它,但没有得到结果。尝试使用方法
我认为您所需要的一切都是array\u key\u存在: 简单地
您可以使用php in_array()内置函数进行检查
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
欲知详情
我更喜欢这个
if(in_array($id,$user_access_arr) == false)
各自的
if (in_array(search_value, array) == false)
// value is not in array
您可以发布
$id
和$user\u access\u arr
的值吗?$id=31$用户访问\u arr=([0]=>4,[1]=>8,[2]=>12,[3]=>31),这样您就可以看到数组中存在31
值。因此in_数组将返回true。如果(!in_数组($id,$user\u access\u arr))
在这种情况下不起作用,因为您的$user\u access\u arr
数组$id=31$用户访问\u arr=([0]=>4,[1]=>8,[2]=>12)如果数组值是这样的,那么结果会是什么?OP的结果是什么?对不起,这是原始海报,所以在这种情况下,提问的人会问问题。解释答案会有帮助。是的,但我想这里的答案不仅仅是OP的答案,更适合搜索类似问题的人。>如何在phpThank中检查not-in数组元素了解此代码段,这可能会提供一些有限的即时帮助。通过展示为什么这是一个很好的问题解决方案,A将极大地提高它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
if (in_array($id,$user_access_arr)==0)
{
$this->Session->setFlash(__('Access Denied! You are not eligible to access this.'), 'flash_custom_success');
return $this->redirect(array('controller'=>'Dashboard','action'=>'index'));
}
$os = array("Mac", "NT", "Irix", "Linux");
if (!in_array("BB", $os)) {
echo "BB is not found";
}
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
?>
$data = array(
0 => 'Key1',
1 => 'Key2'
);
$key = array_search('Key2', $data);
if ($key) {
echo 'Key is ' . $key;
} else {
echo 'Key not found';
}
$id = $access_data['Privilege']['id'];
if(!in_array($id,$user_access_arr));
$user_access_arr[] = $id;
$this->Session->setFlash(__('Access Denied! You are not eligible to access this.'), 'flash_custom_success');
return $this->redirect(array('controller'=>'Dashboard','action'=>'index'));
if(in_array($id,$user_access_arr) == false)
if (in_array(search_value, array) == false)
// value is not in array
$data = array(
0 => 'Key1',
1 => 'Key2'
);
$key = array_search('Key2', $data);
if ($key) {
echo 'Key is ' . $key;
} else {
echo 'Key not found';
}