如果其中有特定单词,则取消设置数组项

时间:2019-01-07 03:57:12

标签: php arrays

试图取消设置数组项。其中包括“列表”一词。我尝试了一些方法,但是没有解决。我想我的代码中必须做错了...

数组是:

[0]=>
  string(41) "http://www.sumitomo-rd-mansion.jp/kansai/"
  [1]=>
  string(43) "http://www.sumitomo-rd-mansion.jp/hokkaido/"
  [2]=>
  string(41) "http://www.sumitomo-rd-mansion.jp/tohoku/"
  [3]=>
  string(62) "http://www.sumitomo-rd-mansion.jp/sp/list.html?area=areaKansai"
  [4]=>
  string(64) "http://www.sumitomo-rd-mansion.jp/sp/list.html?area=areaHokkaido"
  [5]=>
  string(62) "http://www.sumitomo-rd-mansion.jp/sp/list.html?area=areaTohoku"

尝试删除包含“列表”字词的项目,因此我尝试了此操作。

    $needle = "list";

    if (($index = array_search($needle, $allArea)) !== false) {
        unset($allArea[$index]);
    } 

但是它仍然返回所有项目...如何修复代码?

1 个答案:

答案 0 :(得分:5)

这里的问题是array_search()正在将每个字符串条目与IEnumerable<string> GetFilesSlash(string dirname) => Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => p.Replace(Path.DirectorySeparatorChar, '/')); 进行比较

$needle

这意味着除非输入实际上是“ needle”,否则您将永远不会获得比赛。即使匹配,也只会返回找到的第一条目。

您可能会发现filter操作更成功

$url == $needle