【发布时间】:2020-12-27 22:31:20
【问题描述】:
再次发布,因为我是新手,不知道问题的格式应该如何正确。
关于这个问题,我应该做this,因为这个应该写在一个窗口中,而不是在代码中。
这是完整的代码(变量主要用于不同的练习):
$all_pics = glob("pics/*.*");
$all_pics_clear = str_replace(["pics/",".jpg",".png"],"",$all_pics);
$all_pics_clear = str_replace(["_","-"], " ",$all_pics_clear);
for($i = 0; $i < count($all_pics); $i++){
echo "{ type: 'quiz', title: '"
.$all_pics_clear[$i]
."', pic: '"
.str_replace("pics-new/","",$all_pics[$i])
."' },<br>";
}
为什么 foreach 函数不能用这个?
foreach ($all_pics as $filename) {
echo "{ type: 'quiz', title: '"
.$all_pics_clear
."', pic: '"
.str_replace("pics-new/","",$all_pics)
."' },<br>";
}
它一直告诉我“数组到字符串的转换错误”。
Notice: Array to string conversion in C:\laragon\www\ukol8\ukolD\ukolD.php on line 38 { type: 'quiz', title: 'Array', pic: 'Array' },
为什么 for 函数可以使用它?
因为我是初学者,我会很感激一个白痴的解释,很多编程概念都超出了我的能力,我什至不得不查找 for 函数的解决方案,因为我永远不会想到做。
编辑:使用 for 循环更新代码,因为它有效,glob 返回数组的事实很有帮助..我不知道 php 编程和 stackoverflow 的正确方法,所以它可能花点时间了解一下 cmets.cheers 的家伙
edit2:对不起,我真的不知道如何在这里发布数组,数组看起来像this
- 到目前为止,我只能以这种方式使用 foreach 循环,这显然只是在开始时写出值但 20 次。 如何让它遍历所有数组项,并将它们全部写出来?
foreach ($all_pics_clear as $value) {
echo "{ type: 'quiz', title: '"
.$all_pics_clear[0]
."', pic: '"
.str_replace("pics-new/","",$all_pics[0])
."' },<br>";
}
【问题讨论】:
-
你没有到达 foreach。我猜第 38 行是
$all_pics_clear = str_replace(["pics/",".jpg",".png"],"",$all_pics);,这不起作用,因为 glob 返回一个数组,而不是字符串,所以 str_replace 不起作用。 -
所以你想用你自己复杂的方式
echo json_encode($all_pics);? -
或者也许还有更多,但是调试你看不到的东西(数组)真的很难。在此处将数组作为 var_export 发布,以便我们为您提供帮助。
-
$all_pics的值是多少?我们不知道您在pics/*.*文件夹中的内容是什么。 -
谢谢你。 glob 返回数组的事实是非常必要的。否则,不是所有的初学者都在做不必要的复杂事情吗?哈哈,我不知道如何将数组发布为 var_export,所以我至少添加了数组的图像,如果应该以不同的方式完成,请告诉我。 pics 文件夹中的内容实际上是图片(png 或 jpg)。
标签: php arrays for-loop foreach