2017-06-26 5 views
0

複数のURLからjsonを解析したいと思います。私はこのコードでURLを解析できます:php parse json multiple url

<?php 
$url1 = file_get_contents("http://www.url1.com"); 
$url2 = file_get_contents("http://www.url2.com"); 

$decode = json_decode($url1); 

foreach($decode as $obj1) { 
    foreach($obj1 as $obj2) { 
     foreach($obj2 as $obj3) { 
      foreach($obj3 as $obj4) { 
      echo $obj4->name . '<br />'; 
      } 
     } 
    } 
} 
?> 

私はurl1とurl2を解析したいと思います。どうやってやるの?

+0

あなたは私にあなたのJSONを送信することができます。.. –

答えて

0

デコード後にarray_merge()を使用できると思います。json

<?php 
$url1 = file_get_contents("json1.json"); 
$url2 = file_get_contents("json2.json"); 

$decode1 = json_decode($url1); 
$decode2 = json_decode($url2); 
$decode_all = array_merge($decode1,$decode2); 

foreach($decode_all as $obj1) { 
    echo $obj1->name . '<br />'; 
} 
?> 

出力

Jaydeep 
Manish 
+0

ありがとうございました@Jaydeep Morですが、このコードは機能しませんでした。このエラーは "警告:array_merge():引数1は6行目の/index.phpの配列ではありません" $ decode_all = array_merge($ decode1、$ decode2); – Johny

+0

@ジョニーあなたは私のあなたのjsonを送ることができます.. –

+0

@ジョニー私は '$ decode1'が配列かどうかをチェックすると思います。 –

0

Myjson1.jsonファイル

Myjson2

{ 
      "country": "bla bla", 
      "postal": "000000" 
} 

MyPhp.phpがファイルファイル.json

<?php 

$url1 = "..\htdocs\myjson1.json"; 
$json1 = file_get_contents($url1); 
$decode1 = json_decode($json1, TRUE); 

$url2 = "..\htdocs\myjson2.json"; 
$json2 = file_get_contents($url2); 
$decode2 = json_decode($json2, TRUE); 

print '<pre>'; 
print_r($decode1); 
print_r($decode2); 
print '<pre> <hr>'; 

$merge_array = array_merge($decode1,$decode2); 

print_r($merge_array); 

//http://php.net/manual/en/function.extract.php 
extract($merge_array, EXTR_PREFIX_SAME, "wddx"); 


echo "<h1> $name </h1>"; 
echo "<h1> $city <h1>"; 
echo "<h1> $state <h1>"; 
echo "<h1> $country <h1>"; 
echo "<h1> $postal <h1>"; 

?> 

OUTPUT:

enter image description here

注:wddx_deserializeリファレンスhttp://php.net/manual/en/function.extract.php

OR(第二の道)

<?php 

    $decode1 = array("name"=>"xyz","city"=>"bla bla"); 
    $decode2 = array("state"=>"xyz","country"=>"India"); 

    $merge_array = array_merge($decode1,$decode2); 

    foreach($merge_array as $mydata) { 

     echo '<h2>'. $mydata .'</h2>'; 
    } 

?> 

デモ:https://eval.in/822392