-1

unserialize php 関数で製品 ID を取得する必要があります。私はこのテキストを持っています

a:1:{i:4;a:17:{s:8:"quantity";i:1;s:10:"product_id";i:5196;s:11:"category_id";s:3:"209";s:5:"price";d:1;s:3:"tax";s:5:"18.00";s:6:"tax_id";s:1:"1";s:11:"description";s:0:"";s:12:"product_name";s:4:"test";s:11:"thumb_image";s:0:"";s:3:"ean";s:0:"";s:10:"attributes";s:6:"a:0:{}";s:16:"attributes_value";a:0:{}s:6:"weight";s:6:"0.0000";s:9:"vendor_id";s:1:"0";s:5:"files";s:6:"a:0:{}";s:14:"freeattributes";s:6:"a:0:{}";s:25:"dependent_attr_serrialize";s:6:"a:0:{}";}}

そして、次の PHP コードで product_id を取得します。

$rslt = unserialize($data);
echo $rslt[4]["product_id"]);

echo $rslt[x]["product_id"];だから私の質問は、x が 0 から 9 までの任意の数字のようなことをする方法があるということです。

これも試しましたがうまくいきません

        $i=0;
        while($rslt[$i]["product_id"]!="")
            {
            echo $i;
            //echo $rslt[4]["product_id"];                    
            echo $rslt[$i]["product_id"];
            $i++;
            }
4

1 に答える 1

1

入力のシリアル化を解除すると、次のような古き良き PHP 配列が得られます。

$rslt = array (
  4 => 
  array (
    'quantity' => 1,
    'product_id' => 5196,
    'category_id' => '209',
    'price' => 1,
    'tax' => '18.00',
    'tax_id' => '1',
    'description' => '',
    'product_name' => 'test',
    'thumb_image' => '',
    'ean' => '',
    'attributes' => 'a:0:{}',
    'attributes_value' => 
    array (
    ),
    'weight' => '0.0000',
    'vendor_id' => '0',
    'files' => 'a:0:{}',
    'freeattributes' => 'a:0:{}',
    'dependent_attr_serrialize' => 'a:0:{}',
  ),
);

最初の要素を取得するには、他の配列と同様にcurrent()を呼び出します。

$first_item = current($rslt);
print_r($first_item['product_id']);
于 2012-12-07T13:57:35.970 に答える