为mysql_fetch_assoc声明多维数组

时间:2012-03-28 00:49:09

标签: php arrays multidimensional-array

我正在尝试创建一个类似于

的数组
array(
    [Matt => 3],
    [Tom => 7]),
    //etc
)

我想要这个设置,所以我可以将它与mysql_fetch_assoc()一起使用,例如

    $i=0;
    while($data = mysql_fetch_assoc($query)){

        $Array[$i] = $data['name'];  // sore name as part of array
        $Array[$i][0] = ($data['number']; // keep number with the name.
        $i++;

    }

这不起作用。我无法使用array_push这样做。有人可以指导我吗?我的阵列声明是错误的还是重要的?

2 个答案:

答案 0 :(得分:2)

while($data = mysql_fetch_assoc($query)){
    $Array[$data['name']] = $data['number']; // keep number with the name.
}

假设没有重复的名字 - 这可能不是意图,我误读了你的问题......

替代地

while($data = mysql_fetch_assoc($query)){
    $Array[] = array($data['name'] => $data['number']); // keep number with the name.
}

后者是你可以用pdo fetchAll(PDO :: FETCH_ASSOC)做的事情; see here

答案 1 :(得分:0)

我不能确切地说出你想要什么,但这有帮助吗?

$array = array();
while ($data = mysql_fetch_assoc($query)) {
    $array[$data['name']] = $data['number'];
}

这将产生如下(print_r样式)

的数组
Array
(
    [Matt] => 3,
    [Tom]  => 7
)