2017-06-15 121 views
-2

我已經在PHP中創建了兩個函數,這兩個函數都返回一個數組,我想合併這個數組並返回一個JSON。PHP合併2個數組然後解析它到json

示例代碼:

function get_data($conn, $post_id) { 
    $qry = "SELECT * FROM post WHERE Post_id='".$post_id."'"; 
    $res = mysqli_query($conn, $qry); 
    global $myArray; 
    if (mysqli_num_rows($res) > 0) 
    { while($row = mysqli_fetch_assoc($res)) { 
     $Post_id = $row['Post_id']; 
     $Post_title = $row['Post_title']; 
     $Post_body = $row['Post_body']; 
     $myArray[] = array('Post_id' => $Post_id, 'Post_title' => $Post_title, 'Post_body' => $Post_body); 
    } 
    likedislike($conn, $post_id, $myArray); } 
} 


function likedislike($conn, $post_id, $myArray) 
{ 
    $qry1 = "SELECT * FROM likeunlike WHERE postid = '".$post_id."' AND likes=1"; 
    $res1 = mysqli_query($conn, $qry1); 
    $count = mysqli_num_rows($res1); 
    global $myArray; 
    global $username; 
    $userlist = array(); 
    while($row = mysqli_fetch_assoc($res1)) { 
     $Usrname = $row['username']; 
     $userlist[] = array('username' => $Usrname); 
    } 
    $newarray = array_merge($myArray, $userlist); 
    echo json_encode($newarray); 
} 
+0

顯示的代碼。你有什麼嘗試。提示:閱讀['array_merge'](http://php.net/manual/en/function.array-merge.php),瞭解它的行爲與'$ mergedArray = $ array1 + $ array;' – ficuscr

+0

沒有問題,如果它包含鍵和值,,,它的存儲在變量中。 –

+0

檢查此... https://eval.in/817282 ...例如..如果其包含鍵和值.. –

回答

0

您可以通過使用array_mergejson_encode做這樣的功能:

function getMergedJson($array1, $array2) { 
    $result = array_merge($array1, $array2); 
    return json_encode($result); 
} 

與你給我的評論,我認爲你應該做以下,必須有與陣列合併無關:

function get_data($conn, $post_id) { 
    $qry = "SELECT * FROM post WHERE Post_id='".$post_id."'"; 
    $res = mysqli_query($conn, $qry); 
    global $myArray; 
    if (mysqli_num_rows($res) > 0) { 
     while($row = mysqli_fetch_assoc($res)) { 
      $Post_id = $row['Post_id']; 
      $Post_title = $row['Post_title']; 
      $Post_body = $row['Post_body']; 
      $myArray[] = array('Post_id' => $Post_id, 'Post_title' => $Post_title, 'Post_body' => $Post_body, 'Username' => likedislike($conn, $post_id, $myArray);); 

     }   
    } 
    echo json_encode($newarray); 
} 

function likedislike($conn, $post_id, $myArray) 
{ 
    $qry1 = "SELECT * FROM likeunlike WHERE postid = '".$post_id."' AND likes=1"; 
    $res1 = mysqli_query($conn, $qry1); 
    $count = mysqli_num_rows($res1); 
    global $myArray; 
    global $username; 
    $userlist = array(); 
    while($row = mysqli_fetch_assoc($res1)) { 
     $Usrname = $row['username']; 
     $userlist[] = array('username' => $Usrname); 
    } 
    return $userlist; 
} 
+0

我的數組有一個鍵和值 –

+0

請在你的問題中顯示一個例子。您的示例數組+您預期的結果 – zt1983811

+0

函數get_data($ conn,$ post_id) { $ qry =「SELECT * FROM post WHERE Post_id ='」。$ post_id。「'」; $ res = mysqli_query($ conn,$ qry); global $ myArray; ($ row = mysqli_fetch_assoc($ res)){ $ Post_id = $ row ['Post_id'];如果(mysqli_num_rows($ res)> 0){ $ Post_title = $ row ['Post_title']; $ Post_body = $ row ['Post_body']; $ myArray的[] =陣列( \t \t 'POST_ID'=> $ POST_ID, \t 'POST_TITLE'=> $ POST_TITLE, \t 'Post_body'=> $ Post_body \t \t ); } 喜歡($ conn,$ post_id,$ myArray); } } –

0

array_merge

array_merge()函數將一個或多個數組合併到一個數組中。

json_encode

json_encode(),用於轉換爲JSON數據

實施例:

<?php 
$a1=array("red","green"); 
$a2=array("blue","yellow"); 
$myarray = array_merge($a1,$a2); 
$json_data = json_encode($myarray); 
echo json_data; 
?> 

或者

例如:如果鍵和值

<?php 
$a1=array("Volvo"=>"XC90","BMW"=>"X5"); 
$a2=array("abc"=>"XxX","xyz"=>"Xz"); 

$myarray = array_merge($a1,$a2); 

$json_data = json_encode($myarray); 
echo $json_data; 
?> 

例如,參見本... https://eval.in/817282

+0

這是偉大的瑞詩凱詩,一個更快的問題是什麼是在while循環內將元素插入數組的最佳實踐。 –

+0

@Jitender .. okkzz等我給你發送鏈接,以適當的例子...爲了更好地理解... –

+0

如果它解決了你的問題..比請接受答..謝謝.. ..! –

0

使用array_merge

$result = array_merge($array1, $array2); 
echo json_encode($result); 
+0

我的數組包含鍵和值 –

+0

試着讓我如果作品我相信它的作品 –

+0

@JitenderSingh ...請檢查我的答案,,我希望它能幫助你,,,爲Live實例訪問這裏... https:// eval.in/817282 –