2017-01-24 8 views
0

SQL 쿼리에서받은 데이터로 배열로 JSON 객체를 만들려고합니다. 현재 난받은 부호화 JSON은 : (JSON)PHP - 다른 배열의 키로 값을 특정 위치의 배열에 넣으십시오.

["85.00000","50.00000","90.00000"] 
: I는 다른 배열에서 삽입 할

[{"firstname":"Student","lastname":"1"},{"firstname":"Student","lastname":"2"},{"firstname":"Student","lastname":"3"}] 

값의 값은 상기 JSON의 각 어레이에 대응하는 순서대로

{"firstname":"Student","lastname":"1","grade":"85.00000"} 

내 현재 코드 :

//Provisional Array Setup for Grades 
$grade = array(); 
$userid = array(); 
$sqldata = array(); 

foreach($json_d->assignments[0]->grades as $gradeInfo) { 
    $grade[] = $gradeInfo->grade; 
    $userid[] = $gradeInfo->userid; 
} 

//Server Details 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "moodle"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 

// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

foreach($userid as $id) { 
     $sql = "SELECT firstname, lastname FROM mdl_user WHERE id='$id'"; 
     $result = mysqli_query($conn, $sql); 

     if (mysqli_num_rows($result) > 0) { 
     // output data of each row 

      while($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { 
       $sqldata[] = $row; 
      } 

     } else { 
      echo "ERROR!"; 
     } 

} 

$sqlr = json_encode($sqldata); 
$grd = json_encode($grade); 

echo $sqlr; 
echo $grd; 



mysqli_close($conn); 
012,351,641

는 그래서 JSON은 같아야합니다

답변

0

이 코드를 시도 :

foreach($userid as $x => $id) { 
    $sql = "SELECT firstname, lastname FROM mdl_user WHERE id='$id'"; 
    $result = mysqli_query($conn, $sql); 

    if (mysqli_num_rows($result) > 0) { 
    // output data of each row 

     while($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { 
      $row['grade'] = $grade[$x]; 
      $sqldata[] = $row; 
     } 

    } else { 
     echo "ERROR!"; 
    } 
} 

나는

0
function set_column_values($arr, $column_name, $column_values) { 
    $ret_arr = array_map(function($arr_value, $col_value) use ($column_name) { 
     $arr_value[$column_name] = $col_value; 
     return $arr_value; 
    }, $arr, $column_values); 

    return $ret_arr; 
} 

$sqldata = set_column_values($sqldata, 'grades', $grade); 
$sqlr = json_encode($sqldata); 
var_dump($sqlr); 

가 도움이 희망 $grade 배열에 같은 인덱스 $row['grade']을 변수 $x를 추가하고 추가!

관련 문제