2016-05-06 14 views
0

PHPを使用して少なくとも2つの配列をJSONにマージしようとしています。私はこのようなルックスを取得JSONを返すPHPでネストされた配列をマージする

/* Get most frequently used applications */ 
$var = array(); 
$sql = "SELECT * FROM MostFrequentlyApps WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

while($obj = mysqli_fetch_object($result)) { 
    $var[] = $obj; 
} 

$allData = array_merge($allData,$var); 

/* Get user favorites */ 
$var = array(); 
$sql = "SELECT * FROM UserFavorites WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

while($obj = mysqli_fetch_object($result)) { 
    $var[] = $obj; 
} 

$allData = array_merge($allData,$var); 

echo json_encode($allData); 

とJSON-コード:現在、それは私のコードです

[ 

{ 

    "UID": "xyz", 
    "Application": "Test", 
    "AppLink": "http://www.google.com", 
    "AppIcon": "icon.png" 

}, 
{ 

    "UID": "xyz", 
    "Application": "Test2", 
    "AppLink": "http://www.facebook.com", 
    "AppIcon": "icon2.png" 

}, 
{ 

    "UID": "xyz", 
    "URL": "www.yahoo.com" 

}, 

{ 
    "UID": "xyz", 
    "URL": "www.bing.com" 
} 

] 

しかし、私は播種一部と階層のとても親切、結果は次のようになり必要があるだろうアプリとお気に入りを示す他の部分:

{ 

     "apps": 

    [ 

    { 

     "UID": "xyz", 
     "Application": "Test", 
     "AppLink": "http://www.google.com", 
     "AppIcon": "Icon.png" 

    }, 

    { 
     "UID": "xyz", 
     "Application": "Test2", 
     "AppLink": "http://www.facebook.com", 
     "AppIcon": "icon2.png" 
    } 
] 

    "favs": 

[ 

    { 

     "UID": "xyz", 
     "URL": "www.yahoo.com" 
    }, 

    { 
     "UID": "xyz", 
     "URL": "www.bing.com" 
    } 
] 

} 

しかし、私の問題は、私はこれら二つの配列をマージし、最後に、この階層構造を取得する方法がわからないこと、です。まず配列をマージしてからJSONにエンコードする必要がありますか?多分誰かが私にヒントを与えることができます。

ありがとうございます!ここにあなたが何をする必要があるか

答えて

1

// result array with two sub-arrays 
$allData = array(
    'favs' => array(), 
    'apps' => array(), 
); 

/* Get most frequently used applications */ 
$sql = "SELECT * FROM MostFrequentlyApps WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

// add apps right to `apps` sub=array 
while($obj = mysqli_fetch_object($result)) { 
    $allData['apps'][] = $obj; 
} 

/* Get user favorites */ 
$sql = "SELECT * FROM UserFavorites WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

// add favourites right to `favs` sub=array 
while($obj = mysqli_fetch_object($result)) { 
    $allData['favs'][] = $obj; 
} 

echo json_encode($allData); 
+0

作品をお試しください! –

0

は、おかげで魔法のように、この

/* Get most frequently used applications */ 
$apps = array(); 
$sql = "SELECT * FROM MostFrequentlyApps WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

while($obj = mysqli_fetch_object($result)) { 
    $apps[] = $obj; 
} 



/* Get user favorites */ 
$favs = array(); 
$sql = "SELECT * FROM UserFavorites WHERE UID = 'yxz'"; 
$result = mysqli_query($con, $sql); 

while($obj = mysqli_fetch_object($result)) { 
    $favs[] = $obj; 
} 

$allData = array("apps"=> $apps,"favs"=> $favs); 

echo json_encode($allData); 
関連する問題