問題:
$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_fetch_array の 2 番目の引数として MYSQL_ASSOC を指定します。
長期的には、mysql を削除して、mysqli または pdo を使用することもお勧めします。
$a=array('a'=>'1','b'=> 2');
PDO:FETCH_ASSOC
MYSQL_ASSOC
PDO を使用している場合と同等です。
つまり、
$sth = $dbh->query("SELECT...");
$a = $sth->fetch(PDO::FETCH_ASSOC);
//do this
$a = array("a" => "1", "b" => "2");
//or do this
var_dump($a);