あまねこ TOP  >  スポンサー広告 >  php >  PHPで連想配列にいろんな方法で追加させた時の挙動一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --年--月--日 --:-- ] カテゴリ:スポンサー広告 | TB(-) | CM(-)

PHPで連想配列にいろんな方法で追加させた時の挙動一覧

先人さんも結構困ってるみたい

連想配列に新たに連想配列を追加させるにはどうするのか。
PHPには配列を追加する便利なメソッドarray_pushがあるのでこれを使ってみる。
<?php
$array = array(
'key1' => 'data1',
'key2' => 'data2',
'key3' => 'data3',
'key4' => 'data4'
);
array_push($array, array('key5' => 'data5'));
echo "
";
echo var_dump($array);
echo "
";
?>
連想配列の追加にはarray_pushは向いていないようである。
array(5) {
["key1"]=>
string(5) "data1"
["key2"]=>
string(5) "data2"
["key3"]=>
string(5) "data3"
["key4"]=>
string(5) "data4"
[0]=>
array(1) {
["key5"]=>
string(5) "data5"
}
}

連想配列で追加するにはarray_mergeを使うのが正解っぽい。
$array = array_merge($array, array('key5' => 'data5'));
単純に+演算子を使用することもできる。
$array += array('key5' => 'data5');
以下の様な結果になる。
array(5) {
["key1"]=>
string(5) "data1"
["key2"]=>
string(5) "data2"
["key3"]=>
string(5) "data3"
["key4"]=>
string(5) "data4"
["key5"]=>
string(5) "data5"
}

意外だったのが以下の方法
$array2[] = $array;
$array2[] = array('key5' => 'data5');

array(2) {
[0]=>
array(4) {
["key1"]=>
string(5) "data1"
["key2"]=>
string(5) "data2"
["key3"]=>
string(5) "data3"
["key4"]=>
string(5) "data4"
}
[1]=>
array(1) {
["key5"]=>
string(5) "data5"
}
}
なるほど、逆にこうやりたい場合は[]使えばいいのね。
関連記事
[ 2013年07月31日 11:38 ] カテゴリ:php | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。