2017-12-08 12 views
0

私はチャット用の関数を作成しています。私は値のセットから1つだけの値を取得したい。私はそれでarray_unique関数を使用しました。PHPのarray_unique()関数が配列のために機能しない

エラー:

function get_chat_list($sender){ 
     global $conn; 
     $sqlCode = "SELECT DISTINCT sender FROM chat WHERE connector LIKE '%$sender%' "; 
     $sqlCode1 = "SELECT DISTINCT reciever FROM chat WHERE connector LIKE '$sender%'"; 
     var_dump($sqlCode1); 
     $run = mysqli_query($conn,$sqlCode); 
     $run1 = mysqli_query($conn,$sqlCode1); 
     var_dump($run1); 
     $recievers = array(); 
     while($reciever = mysqli_fetch_assoc($run)){ 
      if($reciever['sender'] == $sender){ 

      }else{ 
       $recievers[] = array('reciever'=>$reciever['sender']); 
      } 

     } 

     while($reciever = mysqli_fetch_assoc($run1)){ 
      if($reciever['reciever'] == $sender){ 

      }else{ 
       $recievers[] = array('reciever'=>$reciever['reciever']); 
      } 

     } 

     return array_unique($recievers); 
    } 

Error image

+0

は、画像へのリンクを使用しないでください。質問にエラーを入力(またはコピー)します。 –

答えて

0

あなたはアレイ(非スカラー)で文字列比較をしようとしています。私はarray_unique配列の配列で動作するとは思わない、それは文字列の配列でなければならない。独自の受信者が必要な場合は、その値を文字列に変換する必要があります。

私はあなたが配列を使用しているかもしれませんが、1つの解決策は、配列をシリアル化/文字列化することですし、あなたは一意に実行し、その後、文字列をunwrap/desalinizeすることができます。その配列に1つの値しかない場合は、なぜキーを使用しているのかわかりません。どのように単なる文字列を格納し、それはあなたのために

EX動作するはずについて:

function get_chat_list($sender){ 
     global $conn; 
     $sqlCode = "SELECT DISTINCT sender FROM chat WHERE connector LIKE '%$sender%' "; 
     $sqlCode1 = "SELECT DISTINCT reciever FROM chat WHERE connector LIKE '$sender%'"; 
     var_dump($sqlCode1); 
     $run = mysqli_query($conn,$sqlCode); 
     $run1 = mysqli_query($conn,$sqlCode1); 
     var_dump($run1); 
     $recievers = array(); 
     while($reciever = mysqli_fetch_assoc($run)){ 
      if($reciever['sender'] != $sender){ 
       $recievers[] = $reciever['sender']; 
      } 

     } 

     while($reciever = mysqli_fetch_assoc($run1)){ 
      if($reciever['reciever'] != $sender){ 
      $recievers[] = $reciever['reciever']; 
      } 

     } 

     return array_unique($recievers); 
    } 
関連する問題