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';
}