2015-07-10 20 views
5

Ich habe dieses Stück Code, von dem ich ein einzelnes Array erhalten möchte, das alle Werte enthält.Mehrere Arrays zu einzelnen Arrays verschmelzen

$sql = "SELECT * FROM interest where interest='".$interest."' and userid!='".$myuserid."'"; 
$result = mysqli_query($conn, $sql); 
if (mysqli_num_rows($result) > 0) 
    { 
     while($row = mysqli_fetch_assoc($result)) 
      { 
       $userid = $row["userid"]; 

       if($searchtype == 'both') 
        { 
         $sql2 = "SELECT * FROM register where id='".$userid."' and discover = 'on' and id!='".$myuserid."'"; 
         $result2 = mysqli_query($conn, $sql2); 
         if (mysqli_num_rows($result2) > 0) 
          { 
           while($row2 = mysqli_fetch_assoc($result2)) 
            { 
             echo "<pre>"; 
             print_r($row2); 
             echo "</pre>"; 
            } 
          }  
        } 
      } 
    } 

Die o/p, die ich erhalte ist so etwas wie dies

Array 
(
    [id] => 1 
    [email] => A1 
    [username] =>B1 
    [password] => C1 
    [gender] => C1 
) 

Array 
(
    [id] => 2 
    [email] => A2 
    [username] => B2 
    [password] => C2 
    [gender] => D2 
) 
Array 
(
    [id] => 3 
    [email] => A3 
    [username] => B3 
    [password] => C3 
    [gender] => D3 
) 

Aber das möchte ich alle Daten in einem einzigen Array erhalten, wie dies

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [email] => A1 
      [username] =>B1 
      [password] => C1 
      [gender] => C1 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [email] => A2 
      [username] => B2 
      [password] => C2 
      [gender] => D2 
     ) 
    [2] => Array 
     (
      [id] => 3 
      [email] => A3 
      [username] => B3 
      [password] => C3 
      [gender] => D3 
     ) 
} 

kann jemand sagen, wie kann ich das tun

+0

Können Sie Ihre Frage mit der Beispielausgabe aktualisieren, die Sie sehen möchten? Möchten Sie, dass es mehrere ID-Werte im Array gibt, oder möchten Sie einen ID-Eintrag mit einer Sammlung von Werten? –

+0

@Tim Biegeleisen hat meinen Beitrag aktualisiert – sammy

+0

Ein Refactoring: Wenn Sie nur 'userid' von der ersten Anfrage brauchen, warum können Sie Ihre erste Anfrage nicht auf' "SELECT userid FROM interest wo interesse = '". $ Interest.' ' und userid! = '". $ myuserid."' "' –

Antwort

0

einen Array-Variable Nehmen Sie vor, während Schleife begann wie $user_data = array(); und in der inneren Schleife haben Sie $user_data[] = $row2;

if (mysqli_num_rows($result) > 0) { 
    $user_data = array(); 
    while($row = mysqli_fetch_assoc($result)) { 
      $userid = $row["userid"]; 
      if($searchtype == 'both') { 
        $sql2 = "SELECT * FROM register where id='".$userid."' and discover = 'on' and id!='".$myuserid."'"; 
        $result2 = mysqli_query($conn, $sql2); 
        if (mysqli_num_rows($result2) > 0) { 
          while($row2 = mysqli_fetch_assoc($result2)) { 
            $user_data[] = $row2; 
           } 
         }  
       } 
     } 
    print_r($user_data); //Print here your user_data outside the loop. 
} 
+0

obwohl ich die Antwort kann Sie uplz sagen, warum das Ergebnis nicht innerhalb der Schleife gedruckt werden kann – sammy

+0

Sie haben das Ergebnis in Schleife, aber es zeigt individuelle Array-Datensatz und Sie will das ganze Ergebnis in einem einzigen Array, deshalb müssen $ user_data Variablen – Sadikhasan

+0

in diesem Beitrag Ich hatte einen Teil meines Codes, hier hatte ich nur eine Bedingung von if ($ sextype == 'beide') angezeigt, aber ich habe 2 mehr Bedingung basierend auf Suchtyp und ich wollte das Ergebnis jeder Bedingung separat drucken, aber wenn ich das Ergebnis außerhalb drucken, werde ich nicht in der Lage sein, das Ergebnis gemäß Bedingung – sammy

1

Erstellen Sie eine Array-Variable wie $a=array(); am Anfang Ihres Codes

Get in Array Zeilenwert $ a [] = Ihren Zeilenwertes (while-Schleife), dann diesen Außenlooping drucken Sie alle Werte in einzelner Array erhalten werden gedruckt wie

print_r($a); 
0

Sie fast in der Nähe, um Ihr Ziel zu setzen, müssen Sie nur ein Array definieren, und jede Zeile der Daten in ihm

speichern 0
// array which contains all rows data 
$all_rows = array();        // <------ step 1 
if(mysqli_num_rows($result2)) 
{ 
    while($row2 = mysqli_fetch_assoc($result2)) 
    { 
     // every record data is stored here 
     $all_rows[] = $row2;       // <------ step 2 
    } 
} 
if(!empty($all_rows)) 
{ 
     print_r($all_rows); 
}else 
{ 
    echo "do some thing else since zero records fetched"; 
} 
Verwandte Themen