【问题标题】:Create Multidimentional Associative Array from Database从数据库创建多维关联数组
【发布时间】:2014-10-03 23:41:06
【问题描述】:

我在尝试创建一个如下所示的关联数组时遇到问题:

Array(
      Array('111.01.0040' => 'PEMBENAHAN PIPA TURBIN'),
      Array('111.01.0041' => 'PENGELASAN UNVIL'),
      Array('111.01.0042' => 'BONGK.PASANG PINION/LAMAK SPIE')
      );

从一张看起来像的桌子

No    | kdbr        | nmbr
1     | 111.01.0040 | PEMBENAHAN PIPA TURBIN
2     | 111.01.0041 | PENGELASAN UVIL
3     | 111.01.0042 | BONGK.PASANG PINION/LAMAK SPIE

我所能做的就是拥有一个看起来像的数组

Array ( [0] => Array (
    [111.01.0040] => PEMBENAHAN PIPA TURBIN
    [111.01.0041] => PENGELASAN UNVIL
    [111.01.0042] => BONGK.PASANG PINION/LAMAK SPIE);

我的代码是这样的

$dbc = mysqli_connect('localhost', '*****', '*****', '*****');
$query = "SELECT kdbr, nmbr FROM tb_master_barang";
$result = mysqli_query($dbc, $query);
$data_array = array();
while ($row = mysqli_fetch_assoc($result)) {
    $data_array[$row['kdbr']] = $row['nmbr'];
}

是否有可能通过从数据库中获取数据来制作我想要制作的数组?谁能帮帮我?

谢谢:)

【问题讨论】:

  • $data_array[] = array($row['kdbr'] => $row['nmbr']);
  • 还有一件事要问,在我的表中 kdbr 被定义为 varchar,但在数组中它是 ["111.01.0041"] 而不是 "111.01.0041",我怎样才能删除 [] 标签?
  • 什么时候输出["..."]?
  • 对不起,我在错误的道路上做了很长时间......我需要创建一个类似array(array('kdbr'=>"111.01.0041", nmbr => PENGELASAN UNVIL) 的数组,而不是我在那里写的......跨度>

标签: php arrays database associative


【解决方案1】:

这是可能的,但你已经倒过来考虑了。

Array (
     Array(A => B)
     Array(C => D)
)

其实是

Array (
    [0] => Array(A => B)
    [1] => Array(C => D)
)

这意味着如果您想要Array (x => y) 效果,每次都必须创建一个新数组。

while ($row = mysqli_fetch_assoc($result)) {
    $data_array[$row['no']] = array($row['kdbr'] => $row['nmbr']);
}

或者如果您不希望它按 $row['no'] 排序,而只是希望通过您订购 SQL 查询的方式将其添加到数组中:

while ($row = mysqli_fetch_assoc($result)) {
    $data_array[] = array($row['kdbr'] => $row['nmbr']);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    相关资源
    最近更新 更多