Objective: 有一种用户可以选择的复选框类别,它可以从所选目录生成所有.gif文件的数组 .
我猜想解决这个问题的方法是创建一个目录数组来传递给glob()函数 . 但我的问题是正确格式化目录参数 . 或者也许有一种更有效的方法来实现这一目标 .
Sample Code:
<form method="get">
<input type="checkbox" name="category_1" value="true">
<input type="checkbox" name="category_2" value="true">
<input type="checkbox" name="category_3" value="true">
<input type="checkbox" name="category_4" value="true">
<input type="checkbox" name="category_5" value="true">
<input type="submit" value="submit">
</form>
<?php
$dir = []; //INITIALIZE DIR - ONLY REFERENCED IN IF STATEMENTS
if(isset($_GET['category_1'])){
$dir[] = "gif/category_1/*.gif"
}
if(isset($_GET['category_2'])){
$dir[] = "gif/category_2/*.gif"
}
if(isset($_GET['category_3'])){
$dir[] = "gif/category_3/*.gif"
}
if(isset($_GET['category_4'])){
$dir[] = "gif/category_4/*.gif"
}
if(isset($_GET['category_5'])){
$dir[] = "gif/category_5/*.gif"
}
$images = glob(foreach($dir as $path){echo $path}, GLOB_BRACE)
?>
这里的问题是多个glob参数必须用逗号分隔,这样我就可以在echo $ dir []循环中附加一个逗号,但它仍然会在末尾留下一个无效的逗号 .
Example:
<?php echo $path.','; // this would leave comma at end. ?>
我在正确的轨道上吗?或者有更好的方法来做到这一点 . 在此先感谢大家的帮助!
3 回答
您可以使用implode()函数 . 如下 .
implode将返回带有','的连接字符串而不留下尾随逗号并避免
foreach
循环如果我理解你的问题,你可以使用implode .
Implode将以逗号分隔输出数组项 .