用SQL查询在PHP中生成二维数组

用SQL查询在PHP中生成二维数组,php,mysql,sql,arrays,csv,Php,Mysql,Sql,Arrays,Csv,正在寻找使用SQL查询结果在php中生成多维数组(现在是2,以后更多),以便稍后将其推送到CSV文件中。我希望每行“每个成员”包含两行,“姓名”和“姓氏” 我正在尝试这个: $table_echo=”“; $sql='SELECT*来自成员; $nb=$bdd->query($sql); 而($result=$nb->fetch()){ $table_echo.=数组($result['name'],$result['name']),“; } $data=数组( $table_echo );为

正在寻找使用SQL查询结果在php中生成多维数组(现在是2,以后更多),以便稍后将其推送到CSV文件中。我希望每行“每个成员”包含两行,“姓名”和“姓氏”

我正在尝试这个:

$table_echo=”“;
$sql='SELECT*来自成员;
$nb=$bdd->query($sql);
而($result=$nb->fetch()){
$table_echo.=数组($result['name'],$result['name']),“;
}
$data=数组(
$table_echo

);为了更好地理解,我将使用汽车示例中的变量

$cars = array();
// ... sql
while($result = $nb->fetch()){
  $cars[] = array($result['name'],$result['surname']);
}
// here you have $cars full of data in "correct" structure

这应该构建与cars示例相同的结构

如果您的目的只是将文件保存为CSV,则无需创建数组

//open csv file - if not exists will create new file
$csv_file = fopen('output.csv', "w");

$sql='SELECT * FROM members';
$nb = $bdd->query($sql);

while($result = $nb->fetch()){
  //prepare line
  $line = $result['name'].",".$result['surname'])."\n";
  //write line to csv file
  fwrite($csv_file, $line);
}

fclose($csv_file);
你可以这样做

$table_echo ="";

$sql='SELECT * FROM members';
$nb = $bdd->query($sql);

$data = [];
while($result = $nb->fetch()){
  $data []= array($result['name'],$result['surname']);
}

这里的错误是您试图“可视化地”构建数据-您看到它是以某种方式编写的,并且您试图通过字符串重现语法。由于处理顺序和意义不同,它对PHP解释器具有不同的意义。您需要通过语言语法动态构建数据结构,而不是通过该语法的字符串表示。感谢您的快速回答,但它不起作用,在CSV文件中,我只得到一行:“ArrayArray | Array | Array”和“members”表在我的数据库中有10个条目。请用您与CSV合作的代码编辑帖子,就像一个魔咒一样。谢谢!