2017-06-15 123 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 –