【问题标题】:PHP Insert Values from 1 Array into another Array at a specific pointPHP在特定点将1个数组中的值插入另一个数组
【发布时间】:2017-06-20 00:52:32
【问题描述】:

我有一个名为 $sqldata 的关联数组。这个数组看起来像:

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


}

我想要的是当 foreach 循环迭代时,我想要从 SQL 查询接收到的作业名称和另一个关联中的等级(来自原始 $sqldata 数组)。成绩值的顺序对应于作业名称。所以最终的数组应该是 JSON 格式的:

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

【问题讨论】:

标签: php sql arrays json foreach


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 2015-09-19
    • 2014-05-01
    • 2011-08-09
    • 2017-06-09
    • 2019-04-14
    • 2022-01-11
    • 2016-08-04
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多