はじめに
個人的に学びになったことを書きます。
if文、for文など基本的な文法ではなく、メソッドの使い方などがメインになってくると思います。
宇宙船演算子
<?php
$point = 85;
var_dump($point <=> 85); //結果:0
var_dump($point <=> 70); //結果:1
var_dump($point <=> 99); //結果:-1
?>
比較結果 | 意味 |
---|---|
0 | 右辺と左辺が等しい |
1 | 右辺が左辺より小さい |
-1 | 右辺が左辺より大きい |
配列の合成
配列の合成をするには+とarray_merge関数の2つの方法がありますが下記の通り動きに違いがあります。
合成の方法 | 配列を合成時の挙動 | 連想配列を合成時の挙動 |
---|---|---|
+記号を使う | 同一キー番号があった場合、前の値を優先 | 同一キー名があった場合、前の値を優先 |
array_merge | 同一キー番号があった場合、番号を変えて末尾に追加 | 同一キー名があった場合、後の値で上書き |
array_merge_recursive | 同一キー番号があった場合、番号を変えて末尾に追加 | 同一キー名があった場合、配列としてマージされる |
<?php
//配列の合成
$arr1 = ['ライオン','ゾウ'];
$arr2 = ['ペンギン','猫','カバ'];
$merge1 = $arr1 + $arr2; // ライオン,ゾウ,カバ
$merge2 = $arr2 + $arr1; //ペンギン.猫,カバ
$merge3 = array_merge($arr1,$arr2); //ライオン,ゾウ,ペンギン,猫,カバ
$merge4 = array_merge($arr2,$arr1);//ペンギン,猫,カバ,ライオン,ゾウ
print_r($merge1);
print_r($merge2);
print_r($merge3);
print_r($merge4);
?>
<?php
//連想配列の合成
$arr3 = [
'name' => '本田',
'hobby' =>'サッカー'
];
$arr4 = [
'name' => '大谷',
'hobby'=>'野球',
'age'=>27
];
$merge5 = $arr3 + $arr4; // 本田,サッカー,27
$merge6 = $arr4 + $arr3; //大谷,野球,27
$merge7 = array_merge($arr3,$arr4); //大谷,野球,27
$merge8 = array_merge($arr4,$arr3); //本田,サッカー,27
print_r($merge5);
print_r($merge6);
print_r($merge7);
print_r($merge8);
?>
最後にarray_merge_recursive
<?php
$arr5 = [
'name' => '香川',
'hobby' => 'サッカー'
];
$arr6 = [
'name' => 'イチロー',
'hobby' => '野球',
'age' =>47
];
$merge9 = array_merge_recursive($arr5,$arr6);
$merge10 = array_merge_recursive($arr6,$arr5);
print_r($merge9);
print_r($merge10);
こちらの結果は以下のようになります。
// merge9の結果
Array
(
[name] => Array
(
[0] => 香川
[1] => イチロー
)
[hobby] => Array
(
[0] => サッカー
[1] => 野球
)
[age] => 47
)
// merge10の結果
Array
(
[name] => Array
(
[0] => イチロー
[1] => 香川
)
[hobby] => Array
(
[0] => 野球
[1] => サッカー
)
[age] => 47
)