从 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 循环中删除项目的主要内容,如果未能解决你的问题,请参考以下文章
php 从Beaver Builder中的循环中删除当前Post