簡體   English   中英

從數組中排除多個值

[英]Excluding multiple values from the array

我有以下代碼

'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']):'';
                    },

這是關於在后端創建特定類別的刪除功能。 如您在第三行中看到的,它從刪除功能中排除了類別ID號11。 除了類別ID號11,我還想從數據庫中添加類別ID號15,但是當我按如下方式插入15時,它會導致錯誤: ($model->info_category_id !== 11, 15)

如果您能幫助我在代碼中正確插入category_id 15號,我將不勝感激。

提前致謝。

請嘗試以下操作:

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']):'';

它只是單獨檢查值。

您不能像這樣進行多次比較:

$a !== $b, $c

但是,您可以這樣做:

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

或者,您可以使用數組:

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

您可以擁有一個要排除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']):'';
 },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM