关联数组中的单个 mysql 字段

singly mysql field in an associative array

我目前有这个代码:

$res= $mysqli->query("SELECT titre FROM Bibliographie WHERE Nom_Auteur LIKE '%$auteur%'"); 

while ($row=$res->fetch_assoc()) {
    var_dump($row);
} 

结果是:

array(1) {
    ["titre"]=>
    string(65) "Le droit privé dans les Pays-Bas méridionaux du 12e au 18e siècle"
}
 array(1) {
    ["titre"]=>
    string(41) "Le droit foncier à Bruxelles au moyen-âge"  
} 
array(1) {
    ["titre"]=>
    string(78) "Les sûretés personnelles dans les Pays-Bas méridionaux du XIe au XVIIIe siècle"
}
array(1) {
    ["titre"]=>
    string(44) "Chartes du chapitre de St-Gudule à Bruxelles"
}

但我希望结果是:

[0] => "Le droit privé dans les Pays-Bas méridionaux du 12e au 18e siècle"
[1] => "Le droit foncier à Bruxelles au moyen-âge"
[2] => "Chartes du chapitre de St-Gudule à Bruxelles"

我无法理解这个问题,需要一些帮助来获得这个简单的结果...

请尝试使用 while ($row=$res->fetch_array()){var_dump($row);}。参见 Mysqli fetch_assoc vs fetch_array

您可以通过这种方式达到您想要的结果:

$result = array();
while ($row=$res->fetch_assoc()) {
    $result[] = $row['titre'];
} 
var_dump($result);

您有多种选择,

1) 您可以使用 fetch_all() 方法而不是 fetch_assoc() 一次获取一个变量中的所有数据,然后您可以使用这个函数。

$res= $mysqli->query("SELECT titre FROM Bibliographie WHERE Nom_Auteur LIKE '%$auteur%'"); 
$result = array_map(function($ary) {return $ary['titre'];}, $res->fetch_all());
// Just two lines of code. No big deal

2) 正如 Gerald Schneider 所建议的,

$res= $mysqli->query("SELECT titre FROM Bibliographie WHERE Nom_Auteur LIKE '%$auteur%'"); 

$result = array();
while ($row=$res->fetch_assoc()) {
     $result[] = $row['titre'];
} 
var_dump($result);
// simple and easy to understand