2016-07-22 6 views
0

私は、セッションで収集された配列の中にたくさんのデータを持っています。私はこれをしますprint_rし、すべての内容を表示することができていますが、私は、製品名を表示するのに苦労しています、ID、画像など

私が使用してを示しています:

<?php 
echo '<pre>'; 
print_r($_SESSION); 
echo '</pre>'; 
?> 

それは私が必要とするすべてを出力しますが、私が必要とする形式ではありません。だから私はそれが私のデータを収集し、配列に格納されていることを知っている。私は次のように別のファイルにデータを設定しました:

if (isset($_POST['Submit'])) { 
    $_SESSION['product_img'][] = $_POST['product_img']; 
    $_SESSION['product_id'][] = $_POST['product_id']; 
    $_SESSION['product_name'][] = $_POST['product_name']; 
    $_SESSION['product_price'][] = $_POST['product_price']; 
    $_SESSION['product_sku'][] = $_POST['product_sku']; 
    $_SESSION['product_description'][] = $_POST['product_description']; 
} 

これはすべて私が出力したいものです。

+0

各$ _SESSION変数の最後に[]を削除します。 – ChrisG

+0

あなたがしようとしていることについてもっと具体的にしてください。あなたが知る限り、あなたは "可読"形式でデータを出力する方法を尋ねていますが、print_rはわかりやすいものです。 – Bailey

+0

申し訳ありませんが、私は製品イメージを表示する必要があります。これらのアイテムをデータベースから選択すると製品名になります – PhpDude

答えて

1

**あなたの提案に固執次のいずれか**

$_SESSION['...'][]
if (isset($_POST['Submit'])) { 
    $_SESSION['product_img'][] = $_POST['product_img']; 
    $_SESSION['product_id'][] = $_POST['product_id']; 
    $_SESSION['product_name'][] = $_POST['product_name']; 
    $_SESSION['product_price'][] = $_POST['product_price']; 
    $_SESSION['product_sku'][] = $_POST['product_sku']; 
    $_SESSION['product_description'][] = $_POST['product_description']; 
} 

ので、同じようにフォーマット:

foreach($_SESSION as $elements) 
{ 
    foreach($elements as $element) { 
     echo $element . '<br />'; 
    } 
} 

またはこの他の方法を使用します。

if (isset($_POST['Submit'])) { 
    $_SESSION['product_img'] = $_POST['product_img']; 
    $_SESSION['product_id'] = $_POST['product_id']; 
    $_SESSION['product_name'] = $_POST['product_name']; 
    $_SESSION['product_price'] = $_POST['product_price']; 
    $_SESSION['product_sku'] = $_POST['product_sku']; 
    $_SESSION['product_description'] = $_POST['product_description']; 
} 

としてフォーマットします。

foreach($_SESSION as $element) 
{ 
    echo $element . '<br />'; 
} 
+0

しかし、私の質問は本当にこのデータを読みやすい形式で出力していますか? – PhpDude

+0

[foreach](http://php.net/manual/en/control-structures.foreach.php)ループを使用します。 – Bailey

+0

'[]'を削除するとセッションに複数の項目を追加することができなくなります – PhpDude

1

これをHTML形式で出力する簡単な方法は、foreachループを使用して配列の各項目を処理することです。

もっと簡単にするために、POSTコードを変更して各アイテムが1つの配列になるようにすることをお勧めします。

if (isset($_POST['Submit'])) { 
    $_SESSION['products'][] = array(
     'img' => $_POST['product_img'], 
     'id' => $_POST['product_id'], 
     'name' => $_POST['product_name'], 
     'price' => $_POST['product_price'], 
     'sku' => $_POST['product_sku'], 
     'description' => $_POST['product_description'] 
    ); 
} 

今、あなたは$_SESSION['products']を反復処理し、セッション内の各製品の情報を得ることができます。例:

foreach ($_SESSION['products'] as $product) { 
    $name = $product['name']; 
    $id = $product['id']; 
    $price = $product['price']; 
    $img = $product['img']; 
    $sku = $product['sku']; 
    $description = $product['description']; 

    echo "<h1>Product: $name</h1>"; 
    echo "<p>Price: $price | ID: $id</p>"; 
    echo "<img src='$img'>"; 
    echo "<p>$description</p>"; 
    echo "<hr />"; 
} 
+0

このメソッドははるかにクリーンです – PhpDude