2017-02-02 5 views
0

Ich habe ein assoziatives Array namens $ sqldata. Dieses Array wie folgt aussieht:PHP Einfügen von Werten aus 1 Array in ein anderes Array an einem bestimmten Punkt

{"assignment":"1","grade":"11.00000"} 

Mein Code:

function displayfetchAssignGrades($sqldata) { 

$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "moodle"; 
$sqlr = array(); 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 

foreach ($sqldata as $x => $sqld) { 
$sqlqueryinfo = $sqld; 
$sql = "SELECT name FROM mdl_assign WHERE id='$sqlqueryinfo'"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    while($row = mysqli_fetch_array($result)) { 
    $row["grade"] = $sqldata["grade"][$x]; 
    $sqlr = $row; 
} 
} else { 
    echo ""; 
} 

} 
echo json_encode($sqlr);  
mysqli_close($conn); 


} 

Was ich will, ist, wie die foreach -Schleife ich den Namen der Zuordnung wollen, empfangen von der SQL-Abfrage und die Klasse (aus dem ursprünglichen $ sqldata-Array) in einem anderen assoziativen. Die Reihenfolge der Notenwerte entspricht dem Zuweisungsnamen. So sollte die endgültige Array aussehen wie in JSON:

{"assignment name":"Task 1","grade":"11.00000"} 
+1

Und was ist Ihre Frage? –

+1

Darf ich fragen, wie alt dieser Code ist und warum Sie nicht PDO verwenden? – Nitin

+0

Mögliches Duplikat von [Wie wird ein Element in Arrays an einer bestimmten Position eingefügt?] (Http://stackoverflow.com/questions/3353745/how-to-insert-element-into-arrays-at-specific-position) – SsouLlesS

Antwort

0

Versuchen Sie folgendes:

$newArr = []; 

if (mysqli_num_rows($result) > 0) { 
    while($row = mysqli_fetch_array($result)) { 

     $newArr[] = array(
      'assignment name' => 'Task ' . $row["assignment"], 
      'grade' => $row["grade"] 
     ); 
    } 
} 

$json = json_encode($newArr, true); 
Verwandte Themen