2017-06-29 105 views
0

需要你的幫助,這...得到了我的array_merge錯誤 這裏是我的代碼:array_merge():參數#1不是一個數組

//first 
    $url1="https://www.zopim.com/api/v2/chats"; 
    $ch1 = curl_init(); 
    curl_setopt($ch1, CURLOPT_URL, $url1); 
    curl_setopt($ch1, CURLOPT_USERPWD, "$username:$password"); 
    curl_setopt($ch1, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 
    $output1 = curl_exec($ch1); 
    $info1 = curl_getinfo($ch1); 
    curl_close($ch1); 

    $chats1 = json_decode($output1,true); 

    //second 
    $url2="https://www.zopim.com/api/v2/chats?page=2"; 
    $ch2 = curl_init(); 
    curl_setopt($ch2, CURLOPT_URL, $url2); 
    curl_setopt($ch2, CURLOPT_USERPWD, "$username:$password"); 
    curl_setopt($ch2, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); 
    $output2 = curl_exec($ch2); 
    $info2 = curl_getinfo($ch2); 
    curl_close($ch2); 

    $chats2 = json_decode($output2,true); 



    $r = []; 
    if(is_array($chats1) && is_array($chats2)) 
    { 
     foreach($chats1 as $key => $array) 
     { 
      $r[$key] = array_merge($chats2[$key], $array); 
     } 
    } 
    else 
    { 
    echo 'problem with json'; 
    } 
    echo json_encode($r, JSON_UNESCAPED_SLASHES); 

我需要兩個JSON使用array_merge合併( )...即時通訊使用捲曲授權打電話給我API ..

,但是當我嘗試運行它有一個錯誤代碼: enter image description here

這裏的44號錯誤: enter image description here

+0

不知道這是第42行,但它似乎是你的兩個輸出變量中的一個不包含一個編碼對象或數組。 – jeroen

+0

哪一條是第42行? – danopz

回答

1

這意味着您的json_decode失敗。如果字符串不是有效的JSON,它將失敗。當它失敗json_decode返回null或false,所以你必須檢查的反應是有效的:

$chats1 = json_decode($output1, true); 
$chats2 = json_decode($output2, true); 

if ($chats1 && $chats2 && is_array($chats1) && is_array($chats2)) { 
    // your code goes here 
} 
+1

這不完全正確,如果json只包含一個雙引號字符串(有效的json),這仍然會失敗。 – jeroen

+1

增加了is_array檢查 – danopz

+0

我試了一下,仍然有錯誤... – ivor

相關問題