【发布时间】:2018-04-07 04:44:09
【问题描述】:
这是我很久以来的第一个问题,非常感谢任何帮助!
我有一个存储车辆的数据库和一个存储车辆图像的数据库。我正在使用 INNER JOIN 来获取车辆列表及其图像。数据库查询后,我把return放到一个数组中;所以 1 个数组中有 2 个数组:
return array($vehicles, $vehicle_images);
当我执行 print_r 时,我得到了正确的返回:
<?php print_r($your_listings[0]); ?>
<br />
<?php print_r($your_listings[1]); ?>
返回:
Array
(
[0] => Array
(
[vehicle_id] => 35
[vehicle_type] => jeep
[vehicle_vin] => 6969
[owner_email] => user@user.com
[vehicle_make] => Jeep
[vehicle_year] => 2008
[vehicle_model] => cherokee
)
[1] => Array
(
[vehicle_id] => 36
[vehicle_type] => motorcycle
[vehicle_vin] => 1234
[owner_email] => user@user.com
[vehicle_make] => honda
[vehicle_year] => 2018
[vehicle_model] => random
)
[2] => Array
(
[vehicle_id] => 39
[vehicle_type] => atv
[vehicle_vin] => 3215
[owner_email] => user@user.com
[vehicle_make] => Yamaha
[vehicle_year] => 1990
[vehicle_model] => OHYEA
)
)
Array
(
[0] => Array
(
[vehicle_id] => 35
[image_display] => placeholder
)
[1] => Array
(
[vehicle_id] => 36
[image_display] => /new/images/vehicles/users/42/image.jpg
)
[2] => Array
(
[vehicle_id] => 36
[image_display] => /new/images/vehicles/users/42/vehicle1.jpg
)
[3] => Array
(
[vehicle_id] => 35
[image_display] => /new/images/vehicles/users/42/vehicle.jpg
)
[4] => Array
(
[vehicle_id] => 39
[image_display] => placeholder
)
)
现在当我做一个 foreach(包括 bootstrap 4 样式)时,它只显示 2 辆车而不是 3 辆车;它显示的 2 辆车似乎完全按照我的意愿显示:
<div class="container-fluid">
<div class="row no-gutters">
<?php
$your_listings = owner_listings($_SESSION['user']);
if (!($your_listings[0])) {
echo '<div class="col-sm"><div class="alert alert-danger" role="alert"><i class="fas fa-exclamation"></i> You do not have any listings active at this time.</div></div>';
}
else {
foreach ($your_listings as $i => $item) {
$make = $your_listings[0][$i]['vehicle_make'];
$model = $your_listings[0][$i]['vehicle_model'];
$year = $your_listings[0][$i]['vehicle_year'];
$vehicle = $your_listings[0][$i]['vehicle_id'];
$image = $your_listings[1][$i]['image_display'];
if ($image != 'placeholder') {
echo '<div class="col-sm"><div class="card" style="width: 18rem;">
<h5 class="card-title text-center font-weight-bold">'.$year.' '.$make.' '.$model.'</h5>
<img class="card-img-top" src="'.$image.'" alt="'.$year.' '.$make.' '.$model.'">
<div class="card-body">
<a href="#" class="btn btn-primary edit_button" value="'.$vehicle.'" id="'.$vehicle.'" data-vehicle="'.$vehicle.'">Edit</a>
</div>
</div></div>';
}
else {
if ($your_listings[0][$i]['vehicle_type'] == 'atv') {
$image = '/new/images/vehicles/types/atv.png';
}
elseif ($your_listings[0][$i]['vehicle_type'] == 'jeep') {
$image = '/new/images/vehicles/types/jeep.png';
}
elseif ($your_listings[0][$i]['vehicle_type'] == 'motorcycle') {
$image = '/new/images/vehicles/types/motorchycle.png';
}
echo '<div class="col-sm"><div class="card" style="width: 18rem;">
<h5 class="card-title text-center font-weight-bold">'.$year.' '.$make.' '.$model.'</h5>
<img class="card-img-top" src="'.$image.'" alt="'.$year.' '.$make.' '.$model.'">
<div class="card-body">
<a href="#" class="btn btn-primary edit_button" value="'.$vehicle.'" id="'.$vehicle.'" data-vehicle="'.$vehicle.'">Edit</a>
</div>
</div></div>';
}
}
}
?>
</div>
</div>
我是不是盯着这个看太久了?我究竟做错了什么?任何帮助表示赞赏。
谢谢!
【问题讨论】:
-
发生这种情况是因为
foreach ($your_listings as $i => $item) {你的变量$your_listings只有 2 个数组0,1作为键 :) -
抱歉——如果您提交了答案,我本可以接受的!我接受的答案还包括一个例子:)
-
我已经发布了,但如果另一个答案比你也可以接受:)
标签: php arrays multidimensional-array foreach