从数据库创建多维关联数组

时间:2014-08-11 07:55:09

标签: php arrays database associative

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

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'];
}

是否可以通过从数据库获取数据来获得我想要的数组?有谁可以帮助我?

谢谢:)

1 个答案:

答案 0 :(得分:0)

这是可能的,但你已经考虑过这一切。

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']);
}