需要帮助使用array_combine和foreach语句显示多个unserialize值

时间:2017-10-20 21:47:11

标签: php

我需要帮助显示多个反序列化值,使用数组合并或任何其他可用方法。

array_combine只接受2个参数,但这里有12个参数。我该怎么做才能更好地理解。这是我的代码。

$b_hdest = unserialize( base64_decode( $rs['b_hdest'] ) );
$b_hname = unserialize( base64_decode( $rs['b_hname'] ) );
$b_hadd = unserialize( base64_decode( $rs['b_hadd'] ) );
$b_hphone = unserialize( base64_decode( $rs['b_hphone'] ) );
$b_hin = unserialize( base64_decode( $rs['b_hin'] ) );
$b_hout = unserialize( base64_decode( $rs['b_hout'] ) );
$b_hroom = unserialize( base64_decode( $rs['b_hroom'] ) );
$b_hmeal = unserialize( base64_decode( $rs['b_hmeal'] ) );
$b_haextra = unserialize( base64_decode( $rs['b_haextra'] ) );
$b_hcextra = unserialize( base64_decode( $rs['b_hcextra'] ) );
$b_hspecial = unserialize( base64_decode( $rs['b_hspecial'] ) );
$b_hincl = unserialize( base64_decode( $rs['b_hincl'] ) );

$hcnt=1;


foreach (array_combine($b_hdest[0], $b_hname[0],$b_hadd[0],$b_hphone[0],$b_hin[0],$b_hout[0],$b_hroom[0],$b_hmeal[0],$b_haextra[0],$b_hcextra[0],$b_hspecial[0],$b_hincl[0]) as $hdest=>$hname=>$hadd=>$hphone=>$hin=>$hout=>$hroom=>$hmeal=>$haextra=>$hcextra=>$hspecial=>$hincl )
{
echo"
<tr><td>Hotel Details ".$hcnt."</td></tr>
<tr><td>Location : ".$hdest."</td><td>Name : ".$hname."</td><td>Address : ".$hadd."</td><tr>
<tr><td>Phone : ".$hphone."</td><td>CheckIn : ".$hcheckin."</td><td>CheckOut : ".$hout."</td><tr>
<tr><td>Rooms : ".$hroom."</td><td>Meals : ".$hmeal."</td><td>Extra Adult : ".$haextra."</td><tr>
<tr><td>Extra Child : ".$hcextra."</td><td>Special : ".$hspecial."</td><td>Inclusion : ".$hincl."</td><tr>
";
$hcnt++;
}

因为我收到错误

  

警告:array_combine()正好需要2个参数,12在第84行的C:\ xampp \ htdocs \ b2b \ view-booking.php中给出

     

警告:在第84行的C:\ xampp \ htdocs \ b2b \ view-booking.php中为foreach()提供的参数无效

所以这意味着我不能使用这种方法。

我使用了array_merge方法但结果与预期不符。

$newArray = array_merge($b_hdest[0], $b_hname[0],$b_hadd[0],$b_hphone[0],$b_hin[0],$b_hout[0],$b_hroom[0],$b_hmeal[0],$b_haextra[0],$b_hcextra[0],$b_hspecial[0],$b_hincl[0]);
foreach ($newArray as $key => $value) {
echo "
<tr><td>Hotel Details ".$hcnt."</td></tr>
<tr><td>Location : ".$value."</td><td>Name : ".$value."</td><td>Address : ".$value."</td><tr>
<tr><td>Phone : ".$value."</td><td>CheckIn : ".$value."</td><td>CheckOut : ".$value."</td><tr>
<tr><td>Rooms : ".$value."</td><td>Meals : ".$value."</td><td>Extra Adult : ".$value."</td><tr>
<tr><td>Extra Child : ".$value."</td><td>Special : ".$value."</td><td>Inclusion : ".$value."</td><tr>
";
$hcnt++;
} 

2 个答案:

答案 0 :(得分:0)

如果您的所有$b_值都是数组,则迭代一个数组并从其他数组获取相应的键:

$b_hdest = unserialize( base64_decode( $rs['b_hdest'] ) );
$b_hname = unserialize( base64_decode( $rs['b_hname'] ) );
$b_hadd = unserialize( base64_decode( $rs['b_hadd'] ) );
// more $b_ variables

foreach ($b_hdest as $key => $value) {
    // $key is a current index.
    echo $value, ', ', $b_hname[$key], ', ', $b_hadd[$key], '<br />';
}

答案 1 :(得分:0)

  

是h_hdest将存储7家酒店的目的地,b_hname将存储7家酒店的名称,b_hphone将存储7家酒店的联系人,以此类推其他数据

在此之前保持代码不变。其余的,请遵循此。

for($i=0;$i<count($b_hdest[0]);$i++){
    echo"
        <tr><td>Hotel Details ".($i+1)."</td></tr>
        <tr><td>Location : ".$b_hdest[0][$i]."</td><td>Name : ".$b_hname[0][$i]."</td><td>Address : ".$b_hadd[0][$i]."</td><tr>
        <tr><td>Phone : ".$b_hphone[0][$i]."</td><td>CheckIn : ".$b_hin[0][$i]."</td><td>CheckOut : ".$b_hout[0][$i]."</td><tr>
        <tr><td>Rooms : ".$b_hroom[0][$i]."</td><td>Meals : ".$b_hmeal[0][$i]."</td><td>Extra Adult : ".$b_haextra[0][$i]."</td><tr>
        <tr><td>Extra Child : ".$b_hcextra[0][$i]."</td><td>Special : ".$b_hspecial[0][$i]."</td><td>Inclusion : ".$b_hincl[0][$i]."</td><tr>
    ";
}