2017-08-07 3 views
-3

私のWooCommerceの注文ごとにポストメタテーブルに入力されたカスタムデータがあります。データベースから直列化されたデータをPHP配列に変換する

a:2:{i:6517;a:2:{i:0;a:5:{s:10:"first_name";s:5:"Roger";s:9:"last_name";s:6:"Rabbit";s:5:"email";s:19:"[email protected]";s:7:"is_lead";b:1;s:12:"is_cancelled";b:0;}i:1;a:5:{s:10:"first_name";s:7:"Jessica";s:9:"last_name";s:6:"Rabbit";s:5:"email";s:21:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}}i:6518;a:2:{i:0;a:5:{s:10:"first_name";s:6:"Mickey";s:9:"last_name";s:5:"Mouse";s:5:"email";s:20:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}i:1;a:5:{s:10:"first_name";s:6:"Donald";s:9:"last_name";s:4:"Duck";s:5:"email";s:20:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}}} 

- EDIT ---私が最初にこれをJSONでエンコードされたと仮定が、答えを以下の

は、以下のことが実際にシリアライズされたデータであることを理解します。

私はこのデータを以下のようなPHP配列に変換したいので、私はそれを試すことができます。

$data = array ( 
    '6517' => array ( 
     0 => array ( 
      'first_name' => 'Roger', 
      'last_name' => 'Rabit', 
      'email' => '[email protected]', 
      'is_lead' => 1, 
      'is_cancelled' => 0, 
     ), 
     1 => array (
      'first_name' => 'Jessica', 
      'last_name' => 'Rabit', 
      'email' => '[email protected]', 
      'is_lead' => 0, 
      'is_cancelled' => 0, 
     ) 
    ), 
    '6518' => array (
     0 => array (
      'first_name' => 'Mickey', 
      'last_name' => 'Mouse', 
      'email' => '[email protected]', 
      'is_lead' => 1, 
      'is_cancelled' => 0, 
     ), 
     1 => array (
      'first_name' => 'Donald', 
      'last_name' => 'Duck', 
      'email' => '[email protected]', 
      'is_lead' => 0, 
      'is_cancelled' => 0, 
     ) 
    ) 
); 

大変ありがとうございました!

+0

これはJSON形式ではありません、あなたがhttp://php.net/manual/it/function.unserialize.phpを、独自のパーサーを作成したり、PHPアンシリアライズ機能をチェックする必要が –

+3

使用 'unserialize' –

+2

ではありませんJSON、PHPの 'serialize'フォーマットです。 http://php.net/unserialize – deceze

答えて

0

上記のコメントに従って、このデータはJSONエンコードではなくシリアル化されています。誰か読んでいる人のために、以下はうまくいきます。

// Pull serialized data 
$serializeddata = 'a:2:{i:6517;a:2:{i:0;a:5:{s:10:"first_name";s:5:"Roger";s:9:"last_name";s:6:"Rabbit";s:5:"email";s:19:"[email protected]";s:7:"is_lead";b:1;s:12:"is_cancelled";b:0;}i:1;a:5:{s:10:"first_name";s:7:"Jessica";s:9:"last_name";s:6:"Rabbit";s:5:"email";s:21:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}}i:6518;a:2:{i:0;a:5:{s:10:"first_name";s:6:"Mickey";s:9:"last_name";s:5:"Mouse";s:5:"email";s:20:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}i:1;a:5:{s:10:"first_name";s:6:"Donald";s:9:"last_name";s:4:"Duck";s:5:"email";s:20:"[email protected]";s:7:"is_lead";b:0;s:12:"is_cancelled";b:0;}}}'; 

// Unserialize it into a standard array 
$array = unserialize($serializeddata); 

// Print Array 
print_r($array); 
関連する問題