PHP-将多个数组添加到一个嵌套数组中的最佳实践?

PHP-将多个数组添加到一个嵌套数组中的最佳实践?,php,arrays,Php,Arrays,如果有使用不同术语的答案,请道歉;我一直在四处寻找,但找不到这个问题的答案 我试图将SQL查询的结果作为嵌套数组添加到另一个数组中。父数组如下所示: $room=[ "id" => $roomID, "name" => $roomName, "desc" => $roomDesc, "tracks" => [ //SQL Results here! tr

如果有使用不同术语的答案,请道歉;我一直在四处寻找,但找不到这个问题的答案

我试图将SQL查询的结果作为嵌套数组添加到另一个数组中。父数组如下所示:

    $room=[
        "id" => $roomID,
        "name" => $roomName,
        "desc" => $roomDesc,
        "tracks" => [
            //SQL Results here!
            track {
              //Track ID,
              //Track Name,
              //Track Artist,
              //Track URL,
            },
            track {
              //Track ID,
              //Track Name,
              //Track Artist,
              //Track URL,
            }, 
        ]
    ];
但是,我不知道如何将曲目子数组添加到此数组中。目前,我正在创建一个如下所示的阵列:

  $rows = array();
  //SQL Call logic here
      if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
          $row_array['id'] = $row['id'];
          $row_array['track_name'] = $row['track_name'];
          $row_array['track_artist'] = $row['track_artist'];
          $row_array['track_url'] = $row['track_url'];
          array_push($rows,$row_array);
        }
        print_r(json_encode($rows));
      } else {
          echo "Error: Tracks not found";
          return;
          $conn->close();
          die();
      }

我希望将每个SQL结果作为
$room
中“tracks”数组中的一个“track”对象,我只是不知道如何

您可以直接将数据添加到循环内的
$room['tracks']

while($row = $result->fetch_assoc()) {
    $row_array['id'] = $row['id'];
    $row_array['track_name'] = $row['track_name'];
    $row_array['track_artist'] = $row['track_artist'];
    $row_array['track_url'] = $row['track_url'];
    $room['tracks'][] = $row_array ;
}
print_r(json_encode($room));
或者,如果
$row
仅包含要添加的键,则可以执行以下操作:

while($row = $result->fetch_assoc()) {
    $room['tracks'][] = $row ;
}
print_r(json_encode($room));

$room['tracks'][]=$row\u数组可能重复