4

我有一张包含

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 来打印这样的数组。任何帮助是极大的赞赏。

4

3 回答 3

3

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

目前尚不清楚您使用什么 MySQL API 来获取,但无论是哪个,使用关联 fetch 方法并使用 pattern 创建新的数组键$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'];
}
于 2012-07-04T22:51:48.243 回答
1

您可以为此使用 array_column,因为 PHP5.5 ( http://php.net/array_column )

描述

数组 array_column ( 数组 $array , 混合 $column_key [, 混合 $index_key = null ] )

array_column() 从数组的单个列中返回值,由 column_key 标识。或者,您可以提供一个 index_key 来通过输入数组中 index_key 列中的值对返回数组中的值进行索引。

对于 PHP < 5.5: https ://github.com/ramsey/array_column/blob/master/src/array_column.php

于 2015-02-06T01:59:31.883 回答
0

为了实施 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',
)
于 2018-12-06T00:34:56.517 回答