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_fetch_array の 2 番目の引数として MYSQL_ASSOC を指定します。

長期的には、mysql を削除して、mysqli または pdo を使用することもお勧めします。

于 2012-06-08T12:40:08.097 に答える
1

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

于 2012-06-08T12:23:32.943 に答える
0

PDO:FETCH_ASSOCMYSQL_ASSOCPDO を使用している場合と同等です。

つまり、

$sth = $dbh->query("SELECT...");
$a = $sth->fetch(PDO::FETCH_ASSOC);
于 2014-06-25T03:05:08.960 に答える
0
//do this
$a = array("a" => "1", "b" => "2");
//or do this
var_dump($a);
于 2012-06-08T12:25:23.987 に答える