PHP比较2个数组和两个显示项目

时间:2017-02-14 10:41:40

标签: php multidimensional-array foreach

我正在进行单一任务,而且我现在已经看了几个小时的代码并且我迷失了:(

我需要一个存储购物车项目的会话数组,然后显示另一个数组中的完整项目

数据阵列

$pumps = array(
    'GB96CSUN' => array(
        'img' => 'images/GB96CSUN.gif',
        'title' => '1938 Gilbert & Barker Model 96C Sunray',
        'desc' => 'Beautiful authentic yellow and orange paint scheme highlight this Sunray Gilbert & Barker early electric gas pump. Completely restored inside and out. Correct Gilbarco nozzle. Museum quality. (Rolling Stand Not Included)',
        'price' => '$5495 ',
        ),

    'TK39TLSIG' => array(
        'img' => 'images/TK39TLSIG.gif',
        'title' => '1939 Tokheim Model 39 (Tall) Signal Gasoline',
        'desc' => 'Impressive size and paint scheme, this Tokheim 39 Tall Signal Gasoline pump signaled that the end of the pre-war, "tall" pump era was coming to a close. This magnificent example with its vintage gas brand is near mint. Completely restored. Correct Tokheim nozzle. Near mint. (Rolling Stand Not Included)',
        'price' => '$6495',
        ),

会话数组

$_SESSION['cart'][0];

Array ( [0] => GP8002 [1] => GP792 [2] => RGP300A ) 

显示代码

foreach ($_SESSION['cart'] as $cartlist){
    if (in_array($cartlist, $pumps)){
        echo "<div class='container'>";
            echo    "<nav>";
                echo"<a href='#'><img src='images/$pid.jpg' height='250px'></a>";
            echo"</nav>";
            echo "<article>";
                echo  "<h1>{$cartlist['title']}</h1>";
                echo "<p>{$cartlist['desc']}</p>";
                echo "<p> Price :{$cartlist['price']</p>";
            echo "</article>";
        echo "</div>";
        } 
}

购物车输出

Array
(
    [0] => GP8002
    [1] => GP792
    [2] => RGP300A
)

1 个答案:

答案 0 :(得分:3)

我假设的是什么,然后两者的正确性如下: -

我假设echo "<pre/>";print_r($_SESSION['cart'])如下所示: -

Array ( 
  0 => 'GB96CSUN', 
  1 => 'GP792', 
  2 => 'TK39TLSIG' 
);

基于此代码需要: -

<?php
error_reporting(E_ALL); // check all type of errors
ini_set('display_errors',1); // display those errors
session_start(); // start session to use session data
$pumps = array(
'GB96CSUN' => array(
    'img' => 'images/GB96CSUN.gif',
    'title' => '1938 Gilbert & Barker Model 96C Sunray',
    'desc' => 'Beautiful authentic yellow and orange paint scheme highlight this Sunray Gilbert & Barker early electric gas pump. Completely restored inside and out. Correct Gilbarco nozzle. Museum quality. (Rolling Stand Not Included)',
    'price' => '$5495 '
    ),
'TK39TLSIG' => array(
    'img' => 'images/TK39TLSIG.gif',
    'title' => '1939 Tokheim Model 39 (Tall) Signal Gasoline',
    'desc' => 'Impressive size and paint scheme, this Tokheim 39 Tall Signal Gasoline pump signaled that the end of the pre-war, "tall" pump era was coming to a close. This magnificent example with its vintage gas brand is near mint. Completely restored. Correct Tokheim nozzle. Near mint. (Rolling Stand Not Included)',
    'price' => '$6495'
    )
);

// comment this below line while using the code   
$_SESSION['cart'] = Array ( 0 => 'GB96CSUN', 1 => 'GP792', 2 => 'TK39TLSIG' ); // comment this line while using code

foreach ($_SESSION['cart'] as $cartlist){
    if (in_array($cartlist, array_keys($pumps))){ // check here i used array_keys()?>
       <div class='container'>
           <nav>
              <a href='#'><img src="<?php echo $pumps[$cartlist]['img'];?>" height='250px'></a>
           </nav>
           <article>
              <h1><?php echo $pumps[$cartlist]['title'];?></h1>
               <p><?php echo $pumps[$cartlist]['desc'];?></p>
               <p> Price :<?php echo $pumps[$cartlist]['price'];?></p>
           </article>
       </div>
<?php } }?>

我本地屏幕的输出: - http://i.share.pho.to/bbd07738_o.png(我已经给出了我本地文件图像的路径)