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

时间:2012-07-04 22:41:42

标签: php mysql

我有一个包含

的表格
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来打印数组这样的工作。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

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

目前尚不清楚用于获取的MySQL API,但无论使用哪种方法,都要使用关联fetch方法并使用模式$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'];
}

答案 1 :(得分:1)

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

  

描述

     

array array_column(array $ array,mixed $ column_key [,mixed $ 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

答案 2 :(得分:0)

要实现AcidReign的建议,请参见以下代码段:

代码:(Demo

DateTimeKind.Unspecified

输出:

// This is needed if the Kind isn't already Unspecified
DateTime timeInArizona = DateTimeKind.SpecifyKind(testtime, DateTimeKind.Unspecified);

// Get the from and to time zone  (yes, the IDs have weird naming conventions)
TimeZoneInfo arizonaTimeZone = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
TimeZoneInfo irelandTimeZone = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");

// Do the conversion, specifying both time zones
DateTime timeInIreland = TimeZoneInfo.ConvertTime(timeInArizona, arizonaTimeZone, irelandTimeZone);