2016-08-18 9 views
0

enter image description hereどのようにデータを分割して割り当てるのですか?

どのようにイメージを分割したり、PHPで配列を割り当てることができますか?

[{"ID":2,"no":123,"pname":"400","unit":"mt","bid_count":"4568","unit_price":"56","est_unit_price":"21.31","progress_count":"3841","i_project":117,"seq":0}] 

私は分割しようとしましたが、少し奇妙です。 私はこの=>

$object = str_replace('[{', '', $object); 
    $object = str_replace('}]', '', $object); 
    $pieces = explode(",", $object); 
    // return $pieces[0]; 

    $datas = array(
     'ID' =>str_replace('"ID":','',$pieces[0]), 
     'poz_no'=>str_replace('"poz_no":','',$pieces[1]), 
     'poz_name'=>"asd", 
     'unit'=>str_replace('"unit":','',$pieces[3]), 
     'bid_count'=>str_replace('"bid_count":','',$pieces[4]), 
     'unit_price'=>str_replace('"unit_price":','',$pieces[5]), 
     'est_unit_price'=> str_replace('"est_unit_price":','',$pieces[6]), 
     'progress_count' =>str_replace('"progress_count":','',$pieces[7]), 
     'i_project'=>str_replace('"i_project":','',$pieces[8]), 
     'seq' =>str_replace('"seq":','',$pieces[9]) 
    ); 

を使用し、私はそれを自分でやったが、それは奇妙なようだ:

$object = str_replace('[{', '', $object); 
    $object = str_replace('}]', '', $object); 
    $pieces = explode(",", $object); 


    $datas = array(
     'ID' =>str_replace('"','',str_replace('"ID":','',$pieces[0])), 
     'poz_no'=>str_replace('"','',str_replace('"poz_no":','',$pieces[1])), 
     'poz_name'=>str_replace('"','',str_replace('"poz_name":','',$pieces[2])), 
     'unit'=>str_replace('"','',str_replace('"unit":','',$pieces[3])), 
     'bid_count'=>str_replace('"','',str_replace('"bid_count":','',$pieces[4])), 
     'unit_price'=>str_replace('"','',str_replace('"unit_price":','',$pieces[5])), 
     'est_unit_price'=>str_replace('"','',str_replace('"est_unit_price":','',$pieces[6])), 
     'progress_count' =>str_replace('"','',str_replace('"progress_count":','',$pieces[7])), 
     'i_project'=>str_replace('"','',str_replace('"i_project":','',$pieces[8])), 
     'seq' =>str_replace('"','',str_replace('"seq":','',$pieces[9])) 
    ); 
+0

[json_decode(http://php.net/json_decode)。 –

答えて

1

あなたはこのためにjson_decodeを使用することができます。あなたの文字列がある場合

は:

$json = '[{"ID":2,"poz_no":123,"poz_name":"400mm Muflu Beton ve C Parçası Döşenmesi","unit":"mt","bid_count":"4568","unit_price":"56","est_unit_price":"21.31","progress_count":"3841","i_project":117,"seq":0}]'; 

をあなたは、単に行うことができます。今すぐ

$datas = json_decode($json, true); 

$datasであなたは、JSONのすべてのフィールドの配列を持っています。

jsonのように、要素が1つしかないオブジェクトの配列があります。あなたが実際にここにJSONエンコードされたデータを扱っている

$datas = $datas[0]; //get first element of array. 
0

:あなたが唯一のその最初の要素が必要な場合は後に、あなたが行うことができます。したがって、最初にJSONデータを標準PHPオブジェクトに変換する必要があるかもしれません。そして、通常のPHP Object Access Notationを使用して、好みの値に簡単にアクセスできます。以下のコメントされたコードは、アイデアを(漠然ながらも)説明しようとしています。

GIVEN JSON DATA:

<?php 

     $jsonString = '[{ 
         "ID":2, 
         "poz_no":123, 
         "poz_name":"400mm Muflu Beton ve C Parçası Döşenmesi", 
         "unit":"mt", 
         "bid_count":"4568", 
         "unit_price":"56", 
         "est_unit_price":"21.31", 
         "progress_count":"3841", 
         "i_project":117, 
         "seq":0 
        }]'; 

PROCEDURE:

<?php 

     // CONVERT THE JSON DATA TO NATIVE PHP OBJECT... 
     $arrJSONData = json_decode($jsonString); 

     // NOW, YOU COULD ACCESS THE PHP OBJECT BY DOING: $arrJSONData[0] 
     $objJson  = $arrJSONData[0]; 

     // IF YOU DID IT LIKE THIS; FROM THIS POINT YOU COULD ACCESS YOUR DATA 
     // LIKE YOU WOULD ACCESS ANY NORMAL PHP OBJECT LIKE SO: 
     $id    = $objJson->ID; 
     $pozNo   = $objJson->poz_no; 
     $unit   = $objJson->unit; 

     // HOWEVER, WHAT IF THE JSON DATA CONTAINS MORE THAN ONE ENTRY? 
     // THEN A LOOP WOULD BE NECESSARY... 

     // LOOP THROUGH THE RESULTING ARRAY OF OBJECTS AND GET YOUR DATA... 
     foreach($arrJSONData as $jsonData){    
      // AGAIN; YOU COULD ACCESS YOUR DATA 
      // LIKE YOU WOULD ACCESS ANY NORMAL PHP OBJECT LIKE SO: 
      $id    = $objJson->ID; 
      $pozNo   = $objJson->poz_no; 
      $unit   = $objJson->unit;    
     } 
関連する問題