| (同じ利用者による、間の6版が非表示) | |||
| 140行目: | 140行目: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
$result = [72, 52]; | $result = [72, 52]; | ||
array_push($result, 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> | <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"> | ||
// 直接代入 | // 直接代入 | ||
$ | $array['name'] = 'Yamada'; | ||
$ | $array['age'] = 25; | ||
$ | $array['city'] = 'Aichi'; | ||
// array関数を使用して定義する場合 | // array関数を使用して定義する場合 | ||
| 256行目: | 271行目: | ||
// 各要素にアクセスする場合 | // 各要素にアクセスする場合 | ||
echo $ | echo $array['name']; // Yamada | ||
echo $ | echo $array['age']; // 25 | ||
echo $ | 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> | ||