2017-02-02 3 views
0

私は$ sqldataという連想配列を持っています。この配列は、次のようになります。PHPは1つの配列から特定の点の別の配列に値を挿入します

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

マイコード:

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); 


} 

私が欲しいのは、元から私は割り当ての名前は、SQLクエリとグレードから受信したいforeachループの反復する(ようです$ sqldata配列)を別のアソシエイティブに置き換えます。等級値の順序は、割り当て名に対応します。だから、最後の配列は、JSONで次のようになります。

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

をそして、あなたの質問は何ですか? –

+1

このコードがどれくらい古いのか、なぜPDOを使用していないのか聞いてもらえますか? – Nitin

+0

[特定の位置の配列に要素を挿入する方法は?](http://stackoverflow.com/questions/3353745/how-to-insert-element-into-arrays-at-specific-position) – SsouLlesS

答えて

0

はこのお試しください:

$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); 
関連する問題