从数组中排除多个值

时间:2017-10-07 17:17:26

标签: php mysql arrays

我有以下代码

@JavaScript

是关于在后端创建某个类别的删除功能。正如您在第三行中看到的,它从删除功能中排除了类别ID号11。除了类别ID号11之外,我还想从数据库中添加类别ID号15,但是当我按以下方式插入15时会导致错误:'delete' => function($url, $model) { $url = Url::to(['category/delete/'.$model->info_category_id]); return ($model->info_category_id !== 11)?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):''; },

如果您能帮我将code_id number 15正确插入代码,我将不胜感激。

提前致谢。

3 个答案:

答案 0 :(得分:0)

尝试以下方法:

return (!in_array($model->info_category_id,[11,15]))?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):'';

你这样做的方式是PHP的语法不正确。上面的示例使用in_array函数来确定$model->info_category_id的值是否与提供的数组中的任何值匹配。或者你可以尝试这样:

return ($model->info_category_id !== 11 && $model->info_category_id !== 15)?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):'';

它只是单独检查值。

答案 1 :(得分:0)

你不能做这样的多重比较:

$a !== $b, $c

但是,您可以这样做:

$a !== $b || $a !== $c

或者,您也可以使用数组:

!in_array($a, [$b, $c])

答案 2 :(得分:0)

您可以拥有一个包含要排除的ID的数组,然后将其包含在闭包范围内,并使用in_array()检查数组中是否存在ID:

$excluded = [11, 15];
'delete' => function($url, $model) use ($excluded) { 
     $url = Url::to(['category/delete/'.$model->info_category_id]);
     return (!in_array($model->info_category_id, $excluded))?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):'';
 },