【问题标题】:Excluding multiple values from the array从数组中排除多个值
【发布时间】:2017-10-07 17:17:26
【问题描述】:

我有以下代码

'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-&gt;info_category_id !== 11, 15)

如果您能帮我在代码中正确插入 category_id 编号 15,我将不胜感激。

提前致谢。

【问题讨论】:

    标签: php mysql arrays


    【解决方案1】:

    尝试以下方法:

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

    它只是单独检查值。

    【讨论】:

      【解决方案2】:

      你不能像这样进行多重比较:

      $a !== $b, $c
      

      但是,您可以这样做:

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

      或者,您可以使用数组:

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

      【讨论】:

      • 这总是正确的;将|| 更改为&amp;&amp;
      【解决方案3】:

      您可以拥有一个包含您要排除的 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']):'';
       },
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-27
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多