PHP和网页设计的新手,并使用一些基于图像的PHP脚本。
我一直在寻找一种基于当前数组值访问唯一图像值的方法,但似乎找不到这样做的方法。我发现的所有示例都将图像列在初始数组中,然后在foreach循环中调用。是否可以在没有首先在阵列中声明它的情况下访问某些东西?只是试图避免双重处理,因为image(n).jpg将始终与索引值匹配。即item1 = item1.jpg,item2 = item2.jpg等等。
这是我的代码(我会注意到无效的行):
$examples = array
(
'item1' => array
(
'title' => 'title of item 1',
'price' => 'price of item 1',
'desc' => 'description of item 1'
),
'item2' => array
(
'title' => 'title of item 2',
'price' => 'price of item 2',
'desc' => 'description of item 2'
)
);
foreach ($examples as $eid => $example)
{
echo "<div class='exmple' id='eid_$eid'>";
echo "<h3>{$exmple['title']}</h3>";
echo "</div>";
echo "<p>{$example['price']}</p>";
echo "<p>{$example['desc']}</p>";
//INCORRECT LINE BELOW
echo '<img src="'.$example['img'].'">';
}
上面的错误行引用了一个索引项:
'img' => 'xyz.jpg'
在初始item1,item2数组中不存在。
是否可以让foreach循环根据当前索引值创建指向图像的链接?或者我只是将它添加到每行的原始数组中。
假设文件名称正确。具有.jpg文件扩展名,并且在同一目录中输出应如下所示:
<h3>title of item 1</h3>
<p>price of item 1</p>
<p>description of item 1</p>
<img scr="image1.jpg>
(请注意,我不打算重命名上传的任何文件,这是假设它们已正确上传,格式正确等)
感谢所有人的冗长阅读!
编辑:
计数器的想法非常适合增量增加,但是可以根据阵列名称/数字来识别图像吗?也就是说两个阵列完全不同且不顺序:
'dog56' => array
(
.....
)
'cat72' ==> array
(
...
)
通过这种方式,它找到了dog56.jpg img,然后找到了72只img。
(即img src基于数组值)
<img scr="dog56.jpg>
亲切的问候
Ben S
答案 0 :(得分:0)
试试这个:
$i = 1;
foreach ($examples as $eid => $example)
{
echo "<div class='exmple' id='eid_$eid'>";
echo "<h3>{$exmple['title']}</h3>";
echo "</div>";
echo "<p>{$example['price']}</p>";
echo "<p>{$example['desc']}</p>";
//INCORRECT LINE BELOW
echo '<img src="image'.$i.'.jpg">';
$i++;
}
答案 1 :(得分:0)
试试这个
$examples = array
(
'item1' => array
(
'title' => 'title of item 1',
'price' => 'price of item 1',
'desc' => 'description of item 1'
),
'item2' => array
(
'title' => 'title of item 2',
'price' => 'price of item 2',
'desc' => 'description of item 2'
)
);
$counter = 1;
foreach ($examples as $eid => $example)
{
echo "<div class='exmple' id='eid_$eid'>";
echo "<h3>{$exmple['title']}</h3>";
echo "</div>";
echo "<p>{$example['price']}</p>";
echo "<p>{$example['desc']}</p>";
echo '<img src="image'.$counter.'.jpg">';
$counter++;
}
答案 2 :(得分:0)
试试这个
foreach ($examples as $eid => $example)
{
echo "<div class='exmple' id='eid_$eid'>";
echo "<h3>{$exmple['title']}</h3>";
echo "</div>";
echo "<p>{$example['price']}</p>";
echo "<p>{$example['desc']}</p>";
//INCORRECT LINE BELOW
$image = 'image'.($eid+1).'.jpg';
if(file_exists($image)) {
echo '<img src="'.$image.'">';
}
}
答案 3 :(得分:0)
如果您的图片名称始终与数组键匹配,请尝试以下操作: `echo&#39;&#39;;
答案 4 :(得分:0)
感谢您的帮助和信息。
我能够通过用以下代码替换错误的行来找到解决方案:
`echo '<img src="'.$eid.'.jpg">';
现在数组项目是什么,它所来源的文件名将匹配。
编辑:我无法将此标记为“已解决”2天抱歉。