【问题标题】:Remove item from array if item value contains searched string character如果项目值包含搜索的字符串字符,则从数组中删除项目
【发布时间】:2012-04-17 02:26:05
【问题描述】:

我有一个从网页的 URL 构建的数组。

如果该数组中的项目包含 ?符号(问号符号)然后我想从数组中删除该项目。

$array = 'news','artical','?mailchimp=1';

我怎么能这样做?我见过很多例子,搜索到的字符串是整个值,而不是它只是一个字符或只是值的一部分。

谢谢

【问题讨论】:

    标签: php arrays string


    【解决方案1】:
    foreach($array as $key => $one) {
        if(strpos($one, '?') !== false)
            unset($array[$key]);
    }
    

    【讨论】:

    • +1,但我建议您按照手册中的说明使用 strpos。
    • @SoaicaMircea 这会清除项目的值,但不会将其从数组中删除?
    • 刚刚测试过了。它成功地从数组中删除了元素。你做错了什么。你有什么版本的PHP?
    【解决方案2】:

    http://www.php.net/manual/en/function.array-filter.php

    function myFilter($string) {
      return strpos($string, '?') === false;
    }
    
    $newArray = array_filter($array, 'myFilter');
    

    【讨论】:

      【解决方案3】:

      使用闭包...

      $array = array_filter($array, function($value){
         if (strstr($value, '?') !== false)
         {
            return false;
         }
         return true;
      });
      

      【讨论】:

      • 如果你使用 >= PHP 5.3 那就是。
      猜你喜欢
      • 2013-11-28
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2021-08-10
      • 2018-04-20
      • 2011-09-10
      相关资源
      最近更新 更多