Php Foreach未显示多维数组中的所有项
这是我很久以来的第一个问题,非常感谢您的帮助 我有一个存储车辆的数据库和一个存储车辆图像的数据库。我使用内部连接来获取车辆及其图像的列表。在数据库查询之后,我将返回值放入一个数组中;因此,1个阵列中有2个阵列:Php Foreach未显示多维数组中的所有项,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,这是我很久以来的第一个问题,非常感谢您的帮助 我有一个存储车辆的数据库和一个存储车辆图像的数据库。我使用内部连接来获取车辆及其图像的列表。在数据库查询之后,我将返回值放入一个数组中;因此,1个阵列中有2个阵列: return array($vehicles, $vehicle_images); 当我进行打印时,我得到了正确的返回值: <?php print_r($your_listings[0]); ?> <br /> <?php print_r($your_li
return array($vehicles, $vehicle_images);
当我进行打印时,我得到了正确的返回值:
<?php print_r($your_listings[0]); ?>
<br />
<?php print_r($your_listings[1]); ?>
现在,当我做一个foreach(包括bootstrap4样式),它只显示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>
我只是盯着这个看太久了吗?我做错了什么?感谢您的帮助
谢谢 您正在循环原始数组,正如您所说,它有两个数组。您想要的是只通过
列表的第一个元素循环得到三辆车
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) { // should be foreach ($your_listings[0] as $i => $item) {
$make = $item['vehicle_make'];
$model = $item['vehicle_model'];
if(!($your_listings[0])){
echo“您目前没有任何活动的列表。”;
}
否则{
foreach($i=>$item)应该是foreach($i=>$item)你的\u清单[0]应该是foreach{
$make=$item['vehicle_make'];
$model=$item['vehicle_model'];
您正在循环原始数组,正如您所说,该数组有两个数组。您想要的是只循环通过列表的第一个元素来获得三辆车
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) { // should be foreach ($your_listings[0] as $i => $item) {
$make = $item['vehicle_make'];
$model = $item['vehicle_model'];
if(!($your_listings[0])){
echo“您目前没有任何活动的列表。”;
}
否则{
foreach($i=>$item)应该是foreach($i=>$item)你的\u清单[0]应该是foreach{
$make=$item['vehicle_make'];
$model=$item['vehicle_model'];
尝试一下这个答案
<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
{
$newarray = array();
foreach($your_listings[0] as $i => $item)
{
$newarray[$item["vehicle_id"]] = $item["image_display"];
}
foreach ($your_listings[0] as $i => $item)
{
$make = $item['vehicle_make'];
$model = $item['vehicle_model'];
$year = $item['vehicle_year'];
$vehicle = $item['vehicle_id'];
$image = $newarray[$vehicle];
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 ($item['vehicle_type'] == 'atv') {
$image = '/new/images/vehicles/types/atv.png';
}
elseif ($item['vehicle_type'] == 'jeep') {
$image = '/new/images/vehicles/types/jeep.png';
}
elseif ($item['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>
尝试一下这个答案
<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
{
$newarray = array();
foreach($your_listings[0] as $i => $item)
{
$newarray[$item["vehicle_id"]] = $item["image_display"];
}
foreach ($your_listings[0] as $i => $item)
{
$make = $item['vehicle_make'];
$model = $item['vehicle_model'];
$year = $item['vehicle_year'];
$vehicle = $item['vehicle_id'];
$image = $newarray[$vehicle];
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 ($item['vehicle_type'] == 'atv') {
$image = '/new/images/vehicles/types/atv.png';
}
elseif ($item['vehicle_type'] == 'jeep') {
$image = '/new/images/vehicles/types/jeep.png';
}
elseif ($item['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(\u清单为$i=>$item){
your variable$your_listings
只有两个数组0,1
作为键:)对不起-如果你想提交答案,我会接受的!我接受的答案还包括一个例子:)我已经发布了,但如果另一个答案比你也能接受的更好:)这是因为fore而发生的ach($i=>$item){
您的变量$your\u listings
只有2个数组0,1
作为键:)抱歉-如果您提交了答案,我可以接受!我接受的答案还包括一个示例:)我已经发布了,但如果另一个答案比您也可以接受的更好:)