如果部分名称存在,我可以从php中的数组中删除元素吗?

时间:2016-02-17 11:20:28

标签: php arrays

我目前有一个文件名数组,这些文件名取自具有以下内容的目录:

fileOne.txt 
fileTwo.txt
fileOne_Results.txt
fileThree.txt

我的代码:

$index = array_search('_Results',$extension);
    if($index !== FALSE) {
    unset($extension[$index]);
    print_r($extension);
}

我目前正在浏览目录并在表格中显示文件,但我不想显示包含' _Results'以他们的名义。

这可能吗?

理想情况下,我希望将它们从阵列中删除,我已经尝试了未设置的方法,但只能满足完整的文件名。 提前谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用array_filter。回调可能看起来像这样:

function showFile($file) {
  return strpos($file, "_Results") < 0;
}

$new_array = array_filter($old_array, 'showFile')

答案 1 :(得分:1)

或者您也可以将preg_grep与以下正则表达式(_Results)一样使用

$array = array('fileOne.txt','fileTwo.txt','fileOne_Results.txt','fileThree.txt');
$result = preg_grep("/(_Results)/",$array,PREG_GREP_INVERT);
print_r($result);

输出:

Array
(
    [0] => fileOne.txt
    [1] => fileTwo.txt
    [3] => fileThree.txt
)