Reputation: 77
how can I combine these 2 foreach into 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>';
}
}
?>
I've tried a lot but its not working when I do and I don't know why. It just stop working. How can I merge this 2 foreach as 1? Please
Upvotes: 1
Views: 660
Reputation: 212412
glob() returns a simple array, so just merge the two arrays, and then you only have one array to loop over
$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>';
}
}
EDIT
If you want to be a really smart, you don't even need two globs, but can search for both jpg
and png
in a single glob():
$images = glob($directory . "*.{jpg,png}", GLOB_BRACE);
Upvotes: 4
Reputation: 250
$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>';
}
}
}
Upvotes: 1