如何将这两个foreach合并为1?
<?PHP
$directory = "images/uploads/fexperience/";
$images = glob($directory . "*.jpg");
$imagespng = glob($directory . "*.png");
foreach($images as $image)
{
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo '<li><a href="frmExcludeImage.php?imagename='.$image.'"><img src="'.$image.'" width="150" height="70" /></a></li>';
} else{
echo '<li><a href="'.$image.'" style="background-image:url('.$image.')" ><img src="'.$image.'" width="150" height="70" /></a></li>';
}
}
echo "<br>";
foreach($imagespng as $imagepng)
{
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo '<li><a href="frmExcludeImage.php?imagename='.$image.'"><img src="'.$image.'" width="150" height="70" /></a></li>';
} else{
echo '<li><a href="'.$image.'" style="background-image:url('.$image.')" ><img src="'.$image.'" width="150" height="70" /></a></li>';
}
}
?>
我已经尝试了很多,但是当我这样做时它不起作用,我不知道为什么。它只是停止工作。如何将这2个foreach合并为1?请
答案 0 :(得分:4)
glob()返回一个简单的数组,所以只需合并两个数组,然后只有一个数组可以循环
$directory = "images/uploads/fexperience/";
$images = array_merge(
glob($directory . "*.jpg"),
glob($directory . "*.png")
);
foreach($images as $image) {
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo '<li><a href="frmExcludeImage.php?imagename='.$image.'"><img src="'.$image.'" width="150" height="70" /></a></li>';
} else{
echo '<li><a href="'.$image.'" style="background-image:url('.$image.')" ><img src="'.$image.'" width="150" height="70" /></a></li>';
}
}
修改强>
如果你想变得非常聪明,你甚至不需要两个整体,但可以在一个glob()中搜索jpg
和png
:
$images = glob($directory . "*.{jpg,png}", GLOB_BRACE);
答案 1 :(得分:1)
$directory = "images/uploads/fexperience/";
$images = glob($directory . "*.jpg");
$imagespng = glob($directory . "*.png");
forEachLoop($images);
forEachLoop($imagespng);
function forEachLoop($images) {
foreach($images as $image)
{
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo '<li><a href="frmExcludeImage.php?imagename='.$image.'"><img src="'.$image.'" width="150" height="70" /></a></li>';
} else{
echo '<li><a href="'.$image.'" style="background-image:url('.$image.')" ><img src="'.$image.'" width="150" height="70" /></a></li>';
}
}
}