-1

テーブルにそのように表示される行があります。

2:2/3:1/17:1/6:1/1:1/

それらをphp変数に保存して、ユーザーに表示できるようにする方法を考えています。「/」は要素を区切り、「:」は要素の部分を区切ります。

意味があるかどうかはわかりませんが、こんな感じです。

itemID:quantity/itemID:quantity/itemID:quantity/

そのため、アイテムを分離し、itemID と数量を変数に格納して、ユーザーに表示したいと考えています。

私は爆発機能を使ってみました;

$pieces = explode("/", $order_details);

しかし、itemID と数量を分離する方法がわかりません。

何か助けはありますか?

4

2 に答える 2

1
$pieces = explode("/", rtrim($order_details, '/'));
$items = array();
foreach ($pieces as $piece)
{
    list($id, $qty) = explode(':', $piece);
    $items[$id] = $qty;
}
于 2012-05-22T14:04:16.703 に答える
1

parse_strを利用します。

<?php
$str = '2:2/3:1/17:1/6:1/1:1/';
$str = str_replace(array(':', '/'), array('=', '&'), $str);

parse_str($str, $vars);

/*
$vars now:
Array
(
    [2] => 2
    [3] => 1
    [17] => 1
    [6] => 1
    [1] => 1
)
*/

可能であれば、値をシリアル化された配列としてテーブルに保存します。

于 2012-05-22T14:09:56.650 に答える