2

问题:

$a = array("a" => "1", "b" => "2");
print_r($a);

输出:

Array = ([0]=>'1'
         [a]=>'1'
         [1]=>'2'
         [b]=>'2')

但我想要的是

Array = ( [a]=>'1'
          [b]=>'2')

有什么建议么?

4

6 回答 6

5

应该:

$a=array('a'=> '1','b'=> '2');

或者,如果您的意思是要显示数组,那么

$a=array('a'=> '1','b'=> '2');
$data = print_r($a, true);
echo $data;
//would result in
Array ( [a] => 1 [b] => 2 ) 
于 2012-06-08T12:21:56.363 回答
5

尝试

$a = array("a" => "1", "b" => "2");

而不是你所拥有的。

于 2012-06-08T12:22:02.840 回答
4

从手册中引用

通过使用 MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组。使用 MYSQL_ASSOC,你只能得到关联索引(因为 mysql_fetch_assoc() 有效),使用 MYSQL_NUM,你只能得到数字索引(因为 mysql_fetch_row() 有效)。

除非您告诉 mysql_fetch_array 返回关联,否则它将返回每列的枚举和关联条目

指定 MYSQL_ASSOC 作为 mysql_fetch_array 的第二个参数来解决这个问题

从长远来看,我还建议放弃 mysql 并使用 mysqli 甚至 pdo

于 2012-06-08T12:40:08.097 回答
1

应该是: $a=array('a'=>'1','b'=> 2');

于 2012-06-08T12:23:32.943 回答
0
//do this
$a = array("a" => "1", "b" => "2");
//or do this
var_dump($a);
于 2012-06-08T12:25:23.987 回答
0

PDO:FETCH_ASSOC相当于MYSQL_ASSOC那些使用 PDO 的人。

IE,

$sth = $dbh->query("SELECT...");
$a = $sth->fetch(PDO::FETCH_ASSOC);
于 2014-06-25T03:05:08.960 回答