如何在Cakephp中使用不等于运算符

时间:2009-09-30 07:22:40

标签: php

我在cakephp控制器中有一个动作      它将report_id作为参数,将Selected Fields作为数组。

我正在尝试将包含已存在的属性ID的数组与我从动作帖子中收到的数组进行比较..如果该特定属性id如果不存在于接收到的数组中那么我试图删除该条目在报告表中.. 我不知道在这种情况下如何使用NOt等于运算符。请帮帮我.......

function updateReport($report_id){
    $attribute_ids=$this->params['form']['attr'];
    $comma_separated = explode(",", $attribute_ids);
    $count=count($comma_separated);

    //$comma_separated contains 200,203
    $exists=$this->Report->find('all',array('conditions'=>array('Report.report_id'=>$report_id)));
    //$exists contains the attributes as 200 , 201, 203

    foreach($exists as $exist){
        for($i=0;$i<$count;$i++){
            if($exist['Report']['attribute_id']==$comma_separated[$i]){
                echo "not in array $comma_separated ".$exist['Report']['attribute_id'];echo "     ";
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

听起来您正在寻找array_intersect()和/或array_diff()

$comma_separated = array(200, 203);
$exists=array(200, 201, 203);

foreach(array_diff($exists, $comma_separated) as $x) {
  echo $x, ' not in array $comma_separated. ';
}

打印

201 not in array $comma_separated. 

答案 1 :(得分:0)

要查看数组以查看是否存在某些内容,您需要执行以下操作:

foreach($exists as $exist){
    $exists = false;
    for($i=0;$i<$count;$i++){
        if($exist['Report']['attribute_id']==$comma_separated[$i]){
            //It exists in the array;
            $exists = true;
        }
    }
    if($exists){
        echo "$exist['Report']['attribute_id'] exists";
    }else{
        echo "$exist['Report']['attribute_id'] does not exist";
    }
}