【发布时间】:2014-04-24 17:20:08
【问题描述】:
大家好,请问我正在尝试使用 foreach 从我的数据库中检索值,但表中的字段/行之一是我序列化到数据库中的数组。我检索这个值没有问题,但是当我尝试从数据库中获取数组值时。它们加起来是下一个值。即,如果第一个数组计数为 5,第二个数组计数为 3,则在显示第二行时,它会给出 8 个结果而不是 3,下面是我的代码。
$imageDisplay->getall('images',array('id', 'ASC' ));
if (!$imageDisplay->count()) {
# code...
$imagelist = "<h2>No Images Yet</h2>";
}
else {
$x = 0;
foreach ($imageDisplay->results() as $imageDisplay) {
$event = $imageDisplay->event;
$cover = $imageDisplay->image_cover;
$image = unserialize($imageDisplay->image);
$date = $imageDisplay->date;
foreach ($image as $key => $image) {
# code...
$imageset .= "<img src='../images/".$event."/".$image."' />";
$x++;
}
$imagelist .= "<div class='servicelist'><br /><h2>". $event ."</h2><br><img src='../images/". $cover ."' />
<div class='clear'></div>".$imageset."
<span> <a href='index.php?navsection=gallery&editgallerySection=".$imageDisplay->id."'>Edit</a> <a href='index.php?navsection=gallery&deleteID=".$imageDisplay->id."'>Delete</a></span></div><div class='clear high'></div>";
#$x++;
}
}
图像数组是
Array
(
[0] => Array
(
[0] => event1.jpg
[1] => event2.jpg
[2] => event3.jpg
[3] => event4.jpg
[4] => event5.jpg
)
[1] => Array
(
[0] => event1.jpg
[1] => event2.jpg
[2] => event3.jpg
[3] => event4.jpg
[4] => event5.jpg
[5] => event6.jpg
[6] => event7.jpg
[7] => event8.jpg
[8] => event9.jpg
)
[2] => Array
(
[0] => bkg-03.png
[1] => oil.png
[2] => yamaha.jpg
[3] => yamaha2.jpg
)
)
当我回显 imageList 变量时,图像加起来使得第二行图像 = 第一行图像 + 第二行图像等等 搜索了很多,但大多数结果都是用于将值输入数据库。提前致谢
【问题讨论】:
-
你能告诉我们第一个和第二个循环的
var_dump($image);吗? -
var_dump 返回每个图像数组的数组中的最后一个元素,即字符串 'event4.jpg' (length=10) string 'event9.jpg' (length=10) string 'yamaha2.jpg' (长度=11)
-
我们需要看到的是整个数组。
-
我已经更新了问题
-
您可以尝试使用
(while)循环来代替