LoginSignup
0
0

More than 1 year has passed since last update.

PHP文法(1)

Last updated at Posted at 2021-07-19

はじめに

個人的に学びになったことを書きます。
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
)
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0