从MySQL查询结果创建关联数组 - PHP

8

我想从MySQL查询结果中创建一个关联数组。我想要提取两列,一列包含名称,另一列包含数字。我想要创建的是像这样的东西:

$array = array('maggie'=> 68, 'Joseph' => 21, 'ireen'=> 64);

$dbc = mysqli_connect('localhost', 'root', 'password', 'newbie');
$query = "SELECT fname, eng_end FROM members_records";
$result = mysqli_query($dbc, $query);
while ($array = mysqli_fetch_assoc($result)) {
$data_array[] = $array[];
}

我无法在花括号之间构建有意义的内容,以创建一个数组,其中名称列中的数据作为键,数字列中的数据作为值。 花括号内的每个努力都会得到漫长而愤怒的PHP解析错误的回报。

我该如何继续下去,或者我的基础是否太薄弱,无法取得任何成果? 如何以最少的代码实现我的目标(如果可能)?


应该是 $data_array[] = $array; 吧?另外:$data_array 没有定义。 - jisaacstone
2个回答

27

你可能想要这样做:

$dbc = mysqli_connect('localhost', 'root', 'password', 'newbie');
$query = "SELECT fname, eng_end FROM members_records";
$result = mysqli_query($dbc, $query);
$data_array = array();
while ($row = mysqli_fetch_assoc($result)) {
    $data_array[$row['fname']] = $row['eng_end'];
}

用实际的列名替换 'name' 和 'value'。


谢谢@dkamins,我添加了正确的数据库凭据并对列行进行了替换,现在它可以完美运行! - Bululu
你要用列名替换name和value吗?所以,根据OP的例子,你的意思是应该这样写:$data_array[$row['fname']] = $row['eng_end']? - john k

0

创建关联数组的方法如下:

$a = array('foo' => 'bar', 'color' => 'green');

您可以像这样在创建后添加键:
$a['someotherkey'] = 'value';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接