问题:
$a = array("a" => "1", "b" => "2");
print_r($a);
输出:
Array = ([0]=>'1'
[a]=>'1'
[1]=>'2'
[b]=>'2')
但我想要的是
Array = ( [a]=>'1'
[b]=>'2')
有什么建议么?
应该:
$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 )
尝试
$a = array("a" => "1", "b" => "2");
而不是你所拥有的。
从手册中引用
通过使用 MYSQL_BOTH(默认),您将获得一个包含关联索引和数字索引的数组。使用 MYSQL_ASSOC,你只能得到关联索引(因为 mysql_fetch_assoc() 有效),使用 MYSQL_NUM,你只能得到数字索引(因为 mysql_fetch_row() 有效)。
除非您告诉 mysql_fetch_array 返回关联,否则它将返回每列的枚举和关联条目
指定 MYSQL_ASSOC 作为 mysql_fetch_array 的第二个参数来解决这个问题
从长远来看,我还建议放弃 mysql 并使用 mysqli 甚至 pdo
应该是: $a=array('a'=>'1','b'=> 2');
//do this
$a = array("a" => "1", "b" => "2");
//or do this
var_dump($a);
PDO:FETCH_ASSOC
相当于MYSQL_ASSOC
那些使用 PDO 的人。
IE,
$sth = $dbh->query("SELECT...");
$a = $sth->fetch(PDO::FETCH_ASSOC);