首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数组中筛选特定文件夹

从数组中筛选特定文件夹
EN

Stack Overflow用户
提问于 2018-01-22 19:42:32
回答 4查看 52关注 0票数 0

我有一个包含文件路径的and数组,但我需要过滤掉某些文件夹。

这只是一个例子,但我想删除在本例中位于'thumbs','database‘和'test’文件夹中的文件。

我找不到用于此操作的数组筛选器。

代码语言:javascript
运行
复制
[
   [0] => uploads/projects/pathtofile.jpg,
   [1] => uploads/projects/thumbs/pathtofile.jpg,
   [3] => uploads/database/projects/pathtofile.jpg,
   [4] => uploads/projects/thumbs/database/pathtofile.jpg,
   [5] => uploads/thumbs/projects/test/pathtofile.jpg

]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-01-22 19:47:02

您可以使用array

代码语言:javascript
运行
复制
foreach($array as $key=> $ar){
   if(count(array_intersect(explode('/',$ar),['thumbs', 'database','test']))>0){
    unset($array[$key]);
  }
}

输出:- https://eval.in/939916

票数 2
EN

Stack Overflow用户

发布于 2018-01-22 19:48:32

使用array_filter callable怎么样?

代码语言:javascript
运行
复制
<?php
$a = array(
    0 => 'uploads/projects/pathtofile.jpg',
    1 => 'uploads/projects/thumbs/pathtofile.jpg',
    3 => 'uploads/database/projects/pathtofile.jpg',
    4 => 'uploads/projects/thumbs/database/pathtofile.jpg',
    5 => 'uploads/thumbs/projects/test/pathtofile.jpg',
    6 => 'uploads/thumb/projects/pathtofile.jpg'
);

$b = array_values(array_filter($a, function ($item) {
    return !preg_match('/(\/thumbs\/|\/database\/|\/test\/)/', $item);
}));

echo '<pre>' . print_r($b, 1) . '</pre>';

输出:

代码语言:javascript
运行
复制
Array
(
    [0] => uploads/projects/pathtofile.jpg
    [1] => uploads/thumb/projects/pathtofile.jpg
)
票数 0
EN

Stack Overflow用户

发布于 2018-01-22 19:52:10

我会选择array_filter()preg_match()

代码语言:javascript
运行
复制
$filtered = array_filter($a, function($i) {
    return preg_match('/(thumbs|database|test)/', $i) !== 1;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48380811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档