从mysql查询创建数组。Column2作为键Column1作为值

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (177)

我有一个包含的表

column 1 = state  column 2 = link
Alabama             auburn.alabama.com
Alabama             bham.alabama.com
Alabama             dothan.alabama.com

我需要从我的数据库表中获取并放入一个我可以通过array_walk()的数组。他们需要像这个数组一样被访问。

$arraytable = array(
"auburn.alabama.com"=>"Alabama",
"bham.alabama.com"=>"Alabama",
"dothan.alabama.com"=>"Alabama",
);

我已经尝试了各种方法,但还是不确定如何使用php来输出数组。感谢帮助。

提问于
用户回答回答于

您的问题标题与您的示例不一致。在标题中,您要求将第1列作为键,但您的示例使用第2列作为键。我在这里使用过第2列......

目前尚不清楚用于获取的MySQL API,但无论使用哪种方法,都要使用关联提取方法并使用该模式创建新的数组键$arraytable[$newkey] = $newvalue。这个例子是面向对象的MySQLi中:

$arraytable = array();

while($row = $result->fetch_assoc()) {
  // Create a new array key with the 'link' and assign the 'state'
  $arraytable[$row['link']] = $row['state'];
}
用户回答回答于

要实现AcidReign的建议,以下是片段:

代码:( 演示)

$resultset = [
    ['state' => 'Alabama', 'link' => 'auburn.alabama.com'],
    ['state' => 'Alabama', 'link' => 'bham.alabama.com'],
    ['state' => 'Alabama', 'link' => 'dothan.alabama.com']
];

var_export(array_column($resultset, 'state', 'link'));
//                                            ^^^^-- use this column's data for keys
//                                   ^^^^^-- use this column's data for values

输出:

array (
  'auburn.alabama.com' => 'Alabama',
  'bham.alabama.com' => 'Alabama',
  'dothan.alabama.com' => 'Alabama',
)

扫码关注云+社区

领取腾讯云代金券