我是PHP的新手,所以请耐心等待。我正在练习实际情况的编码所以我通过将我的图像路径存储在一个关联数组中来模仿数据库,这样我就可以创建一个返回路径名的函数,从而调用函数来回显我的图像。
我的问题是它只返回数组中的最后一项。我需要函数为每个项目循环遍历数组并返回文件路径,以便我可以将其存储在$ images中,然后将其回显到我需要的位置。
<?php
$images = array(
array('name' => 'image_00', 'path' => 'images/image-00.jpg'),
array('name' => 'image_01', 'path' => 'images/image-01.jpg'),
array('name' => 'image_02', 'path' => 'images/image-02.jpg')
);
function returnPath($filename, $arr) {
$path = array();
foreach ($arr as $file) {
$path = $file[$filename];
}
return $path;
}
$images = returnPath('path', $images);
?>
<!DOCTYPE html>
<html>
<head>
<title>Images Project</title>
</head>
<body>
<img src="<?php echo $images; ?>"/>
</body>
</html>
答案 0 :(得分:2)
问题是您在$path
函数中覆盖了returnPath
变量。
你想要的是这个:
foreach ($arr as $file) {
$path[] = $file[$filename];
}
反过来,它将为您提供一系列您可以像这样理解的路径:
$images = returnPath('path', $images);
<body>
<?php
foreach($images as $image) {
echo '<img src="'. $image .'" />';
}
?>
</body>
我也非常同意koala_dev's comment。该功能并不真正有效/有用。
由于您已经拥有$images
数组,只需:
foreach($images as $img) {
echo $img['path'];
}
甚至可以通过返回格式化的html <img>
标签来打印到HTML DOM来使函数变得有用: - )
答案 1 :(得分:0)
刚阅读多维数组。它非常简单。
<?php
$images = array(
array('name' => 'image_00', 'path' => 'images/image-00.jpg'),
array('name' => 'image_01', 'path' => 'images/image-01.jpg'),
array('name' => 'image_02', 'path' => 'images/image-02.jpg')
);
?>
<!DOCTYPE html>
<html>
<head>
<title>Images Project</title>
</head>
<body>
<?php
for($i=0;$i<sizeof($images);$i++){ ?>
<img src="<? echo $images[$i]['path']; ?>"/>
<?php }?>
</body>
</html>