从 php 循环中删除项目

Posted

技术标签:

【中文标题】从 php 循环中删除项目【英文标题】:Remove item from php loop 【发布时间】:2013-04-22 08:35:58 【问题描述】:

我有一个循环,如果文件夹名为“data”,则索引文件并将所有文件显示为循环。此外,它会检查 url 字符串,如果字符串 "d" (index.php?d=folderrandom) 中描述了子文件夹 (data/folderrandom),那么它会显示该子文件夹的文件!

我想从循环中切出两个名为“downloadhtml”和“downloadPHP”的文件,它们存储在“data”文件夹中。我想切片包含上述文件名的项目!部分循环代码如下

if(count($files) >= 1)
foreach ($files as $file)  
    $nb++;
    if (!is_dir($file)) 
?>

    <div class="tab icon">hi
    <?php if($folders) ?>
        <a href="index.php?p=view&f=<?php echo $nb; ?>&d=<?php echo $folders; ?>">
    <?php else ?>
        <a href="index.php?p=view&f=<?php echo $nb; ?>">
    <?php 
        
        $info = preg_replace("/\\.[^.\\s]3,4$/", "", $file);
        echo basename($info);
        $blocks[$nb] = $file; 
        ?>
    </a>
</div>
<?php 
    else
    $file_name =  basename($file);  
?>  

下面的 php 代码从左到右切片你喜欢的项目。它非常有用,可以帮助获得答案。

<?
function arem($array,$value)
    $holding=array();
    foreach($array as $k => $v)
        if($value!=$v)
            $holding[$k]=$v;
        
        
    return $holding;


function akrem($array,$key)
    $holding=array();
    foreach($array as $k => $v)
        if($key!=$k)
            $holding[$k]=$v;
        
        
    return $holding;


$lunch = array('sandwich' => 'cheese', 'cookie'=>'oatmeal','drink' => 'tea','fruit' => 'apple');
echo '<pre>';
print_r($lunch);
$lunch=arem($lunch,'apple');
print_r($lunch);
$lunch=akrem($lunch,'sandwich');
print_r($lunch);
echo '</pre>';
?>

【问题讨论】:

可以从php.net中找这个例子 $array['admin'] = array('blah1', 'blah2'); $array['voice'] = array('blah3', 'blah4'); array_cut('blah4', $array); 【参考方案1】:

slice 的意思是不要在输出中显示它们?如果是这样,您可以将其放入您的 foreach 循环中:

foreach ($files as $file)  
    $nb++;
    if(preg_match("/downloadHTML|downloadPHP/i", $file))
        continue;
    
    // The rest of the foreach

【讨论】:

天啊!你让我今天一整天都感觉很好!谢谢! +1 你的答案!您还可以看到我添加的额外代码,将来可能会对您有所帮助!

以上是关于从 php 循环中删除项目的主要内容,如果未能解决你的问题,请参考以下文章

如何从foreach循环php中的对象数组中删除对象

php 从Beaver Builder中的循环中删除当前Post

text nginx重定向循环,从url中删除index.php

从循环内的向量中删除项目

从嵌套for循环中的指针集中删除项目

在for循环中使用拼接从数组中删除项目[重复]