(同じ利用者による、間の6版が非表示)
140行目: 140行目:
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
  $result = [72, 52];
  $result = [72, 52];
  array_push($result, 96, 20);  // 96と20を末尾に追加
  array_push($result, 96, 20);  // 最後尾に96と20を追加
                              // 追加後は、$result = [72, 52, 96, 20] となる
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
155行目: 156行目:
  array_unshift($result, 96, 20);  // 先頭に96と20を追加
  array_unshift($result, 96, 20);  // 先頭に96と20を追加
                                   // 追加後は、$result = [96, 20, 72, 52] となる </syntaxhighlight>
                                   // 追加後は、$result = [96, 20, 72, 52] となる </syntaxhighlight>
<br>
* array_push関数を使用する方法<br>これは、配列の最後尾に要素 (要素群) を追加するものである。
<syntaxhighlight lang="php">
$result = [72, 52];
array_push($result, 96, 20);  // 最後尾に96と20を追加
                              // 追加後は、$result = [72, 52, 96, 20] となる </syntaxhighlight>
<br>
<br>
* array_splice関数を使用する方法<br>これは、任意の位置に要素 (要素群) を追加するものである。
* array_splice関数を使用する方法<br>これは、任意の位置に要素 (要素群) を追加するものである。
169行目: 164行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 要素の削除 ====
==== 要素の削除 ====
* array_pop関数で要素を削除する方法<br>これは、末尾の要素を削除する。
* array_pop関数で要素を削除する方法<br>これは、末尾の要素を削除する。
189行目: 185行目:
<br>
<br>
* array_splice関数は要素の削除も可能である。<br>これは、第3引数 (length) に削除する要素数を指定することで実現できる。<br><u>この時、第4引数は指定しないこと。</u>
* array_splice関数は要素の削除も可能である。<br>これは、第3引数 (length) に削除する要素数を指定することで実現できる。<br><u>この時、第4引数は指定しないこと。</u>
<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
  $array = [1, 2, 3, 4, 5];
  $array = [1, 2, 3, 4, 5];
   
   
202行目: 198行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 要素の切り取り ====
* array_slice関数で要素を切り取り、新たな配列を定義することができる。<br>
<syntaxhighlight lang="php">
$array = [1, 2, 3, 4, 5];
// 1番目の要素から2つ要素を切り取り、新たな配列を定義
// インデックス番号を振りなおす
// array  -> [1, 4, 5]
// array2 -> [2, 3]
$array2 = array_slice($array, 1, 2);
// 1番目の要素から2つ要素を切り取り、新たな配列を定義
// インデックス番号を振りなおさず、保持する
// array  -> [1, 4, 5]
// array3 -> [2, 3]
$array3 = array_slice($array, 1, 2, true);
</syntaxhighlight>
<br>
==== 配列の結合 ====
==== 配列の結合 ====
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
237行目: 252行目:
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
  // 直接代入
  // 直接代入
  $var[0] = 14;
  $array['name'] = 'Yamada';
  $var[2]  = 'Tokyo';
  $array['age']  = 25;
  $var[-4] = 8400;
  $array['city'] = 'Aichi';
   
   
  // array関数を使用して定義する場合
  // array関数を使用して定義する場合
256行目: 271行目:
   
   
  // 各要素にアクセスする場合
  // 各要素にアクセスする場合
  echo $var[0];   // 14
  echo $array['name']; // Yamada
  echo $var[2];  // Tokyo
  echo $array['age'];  // 25
  echo $var[-4];  // 8400
  echo $array['city'];  // Aichi
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
323行目: 338行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 連想配列の要素の存在確認 ====
==== 連想配列の要素の存在確認 ====
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
345行目: 361行目:
   
   
  // 要素の追加
  // 要素の追加
$array1['birth']  = '2024/01/01';
// 要素の変更
  $array1['name']    = 'ナスティア';
  $array1['name']    = 'ナスティア';
  $array1['age']    = '30';
  $array1['age']    = '30';
370行目: 389行目:


==== 連想配列の走査 ====
==== 連想配列の走査 ====
連想配列は通常の配列と異なり、全ての値をfor文で値を取得することはできない。<br>
そのため、全ての値を取得する場合は、foreach文を使用して連想配列の値を取得する。<br>
<br>
<syntaxhighlight lang="php">
// foreach文のシンタックス
// キーと値の走査
// <任意の変数名 1>にはキー名、<任意の変数名 2>には値が自動的に代入される
foreach (<連想配列名> as <任意の変数名 1> => <任意の変数名 2>) {
    // ...処理
}
// 値のみの走査
foreach (<変数名> as <連想配列名>) {
    // ...処理
}
</syntaxhighlight>
<br>
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
//  キーと値の走査
  foreach ($array1 as $key => $value) {
  foreach ($array1 as $key => $value) {
     echo "$key: $value\n";
     echo "$key: $value\n";
381行目: 419行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== 連想配列の結合 ====
==== 連想配列の結合 ====
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
409行目: 448行目:


==== 連想配列の並べ替え ====
==== 連想配列の並べ替え ====
ただし、sort関数には連想配列の対応関係を維持しない。<br>
<u><code>asort</code>関数や<code>ksort</code>関数等は連想配列にも使用できる。</u><br>
<br>
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
$array = ["a" => "hoge", "z" => "piyo", "y" => "huga"];
  // キーでソート
  // キーでソート
  ksort($array1);  // 昇順
  ksort($array1);  // 昇順
424行目: 468行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|+ 配列のソート関数の一覧
! style="background-color:#66CCFF;" | 関数名
! style="background-color:#66CCFF;" | ソート基準
! style="background-color:#66CCFF;" | キーと値の相関関係
! style="background-color:#66CCFF;" | ソートの順序
|-
| array_multisort関数 || 値 || 連鎖配列は維持、添字配列は維持しない || 最初の配列、あるいは、ソートオプション
|-
| asort関数 || 値 || 維持する || 昇順
|-
| arsort関数 || 値 || 維持する || 降順
|-
| krsort関数 || キー || 維持する || 降順
|-
| ksort関数 || キー || 維持する || 昇順
|-
| natcasesort関数 || 値 || 維持する || 大文字・小文字を区別しない自然順
|-
| natsort関数 || 値 || 維持する || 自然順
|-
| rsort関数 || 値 || 維持しない || 降順
|-
| shuffle関数 || 値 || 維持しない || ランダム
|-
| sort関数 || 値 || 維持しない || 昇順
|-
| uasort関数 || 値 || 維持する || ユーザ定義
|-
| uksort関数 || キー || 維持する || ユーザ定義
|-
| usort関数 || 値 || 維持しない || ユーザ定義
|}
</center>
<br>
==== 連想配列の変換 ====
==== 連想配列の変換 ====
  <syntaxhighlight lang="php">
  <syntaxhighlight lang="php">
457行目: 538行目:
     // エラー処理
     // エラー処理
  }
  }
</syntaxhighlight>
<br><br>
== 配列の引数展開 ==
引数展開は可変⻑配列とは逆であり、配列を引数に展開することもできる。<br>
<br>
<syntaxhighlight lang="php">
function output($a, $b, $c)
{
    echo $a . PHP_EOL;  // hoge
    echo $b . PHP_EOL;  // piyo
    echo $c . PHP_EOL;  // huga
}
// 配列を展開して引数に渡す
$array = ["hoge", "piyo", "huga"];
output(...$array);
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>