Php 按名称和年龄对数组进行分组

Php 按名称和年龄对数组进行分组,php,arrays,json,Php,Arrays,Json,你能帮我吗,我有一个PHP,我从中得到一个数组。但我想改变它的输出,并能够按姓名和年龄对它们进行分组 这是我的PHP <?php $name = array(); $age = array(); $sql = $conn->runQuery("SELECT * FROM staff"); $sql->execute(); while ($row = $sql->fetch(PDO::FETCH_A

你能帮我吗,我有一个PHP,我从中得到一个数组。但我想改变它的输出,并能够按姓名和年龄对它们进行分组

这是我的PHP

<?php

    $name = array();
    $age  = array();

    $sql = $conn->runQuery("SELECT * FROM staff");
    $sql->execute();
    
    while ($row = $sql->fetch(PDO::FETCH_ASSOC))
        {
            $name[] = $row['name'];
            $age[]  = $row['age'];
        }

    $posts = [
        "name"  => $name,
        "age"   => $age,
    ];

    echo json_encode($posts, JSON_PRETTY_PRINT);

 ?>
但是,我希望数组返回如下

[
  {
    "name": Erik,
    "age": 18
  },
  {
    "name": Rose,
    "age": 28
  }
]

你能帮我一下吗,我该如何制作这种数组?

我将对这个脚本进行如下调整:

$sql = $conn->runQuery("SELECT * FROM staff");
$sql->execute();

$people = [];
while ($row = $sql->fetch(PDO::FETCH_ASSOC))
{
   $people[] = ['name' => $row['name'], 'age' => $row['age']];
}
echo json_encode($people, JSON_PRETTY_PRINT);
或使用:


谢谢,你的评论对我帮助很大。
$sql = $conn->runQuery("SELECT * FROM staff");
$sql->execute();

$people = [];
while ($row = $sql->fetch(PDO::FETCH_ASSOC))
{
   $people[] = ['name' => $row['name'], 'age' => $row['age']];
}
echo json_encode($people, JSON_PRETTY_PRINT);
$qry = $conn->prepare("SELECT field1, field2 FROM table");
$qry->execute();

$data = $qry->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($data);