$files = glob("../../users/$username/posts/*");
foreach( $files as $eachfile )
{
echo basename($eachfile); //this is current basename
echo "?"; //previous basename how will be?
echo "?"; //next basename how will be?
}
如何在同一个循环中回显循环的下一个和前一个基本名称,我的意思是没有php再次执行foreach,如示例中所示。
答案 0 :(得分:0)
也许你可以这样做:
$files = glob("../../users/$username/posts/*");
for($i = 1; $i < count($files) - 1;$i++)
{
echo basename($files[$i]); //this is current basename
echo basename($files[$i - 1]);
echo basename($files[$i + 1]);
}
答案 1 :(得分:0)
为了使循环正确,可以更容易地看到三个值仅回顾,而不是向前看:
而不是&#34;需要前一个和下一个基本名称&#34;,您可以简化问题,因为&#34;需要前两个基本名称&#34;。
现在,您可以将前两个基本名称保存在两个变量中。
当前的基本名称可以在循环结束时保存为下一循环的前一个基本名称 之前的基本名称将是下一次迭代中的第二个基本名称。
简化对于这一部分很有用,但算法的后面部分可能更容易具有上一个和下一个基本名称。因此,如果这有帮助,您现在可以将变量curent
,previous
和previous2
重命名为next
,curent
和previous
。< / p>
在伪代码中(我不知道php):
prev = files[0]
curr = files[1]
next = files[2]
for (i = 2...files.length) {
next = files[i]
echo prev
echo curr
echo next
prev = curr
curr = next
}