配列は変数の一種です。通常の変数と違い、配列の場合は連続したデータを一つの変数として扱うことができるようになります。
配列は他のプログラミング言語でも存在し、プログラミングをする上で必須となる知識の一つです。
この記事では、PHPの配列について説明していきます。
この記事を理解することで、配列とはどんな変数なのか、どのように扱うのかを理解することができます。
配列とは
配列とは、0から順番にインデックスされた連続したデータの集まりです。
このように初期化して使用します。
<?php
$signal = array("黄", "赤", "青");
?>
信号は、黄、赤、青の順番で変わっていきます。このように配列で表現すると分かりやすいです。
*信号ってsignalで正しいのかな。
配列の定義の仕方は上記の通りです。
信号の配列の黄を表示させてみましょう。
<?php
$signal = array("黄", "赤", "青");
echo $signal[0];
?>
このように0のインデックスを指定すると一番最初の要素にアクセスすることができます。
少し動かしてみます。
<?php
$signal = array("黄", "赤", "青");
for ($i = 0; $i < count($signal); $i++) {
echo $signal[$i];
sleep(1);
}
?>
このプログラムを動かすと、黄、赤、青の順に1秒感覚で表示されます。
echoの後にあるsleep関数は、1秒間処理を停止させるという動きをする関数です。
関数についても別の記事で説明します。
forループにより、$iの変数が0から2までインクリメントされます。
このプログラムをループを使わずに書くと、このようになります。
<?php
$signal = array("黄", "赤", "青");
echo $signal[0];
sleep(1);
echo $signal[1];
sleep(1);
echo $signal[2];
sleep(1);
?>
配列の別の初期化の仕方
配列の初期化の仕方には、別の方法もあります。紹介しておきます。
<?php
// 配列の[]を使って短縮構文でも使用することができます。
// こっちの方が今らしい気がします。
// どちらでも同じです。
$signal = ["黄", "赤", "青"];
$signal = array("黄", "赤", "青");
?>
配列の扱い
配列は、初期化した後に要素を追加、変更、削除、検索、ソートすることができます。
この操作が出来ることにより、大量に読み込んだデータから検索したり、必要なデータだけ取り出したり、配列のメモリ上で高速にデータ処理をすることができます。
それでは、追加、変更、削除、検索、ソートのやり方を見てみます。
配列のデータ操作
まずは、要素の追加をしてみます。ちょっと信号だと合わないですね。
そうだ。こうしましょう。焼き鳥屋さんに行って注文をしていく様子。
<?php
// まずは、入店して2つの注文
$orders = ["お通し", "ビール"];
// 次に焼き鳥の注文を追加します
array_push($orders, "ねぎま");
// 短縮構文を使って注文を追加します
$orders[] = "ビール";
?>
これで$ordersの配列には、「お通し、ビール、ねぎま、ビール」の4つの注文が入っています。
次は、配列を変更してみましょう。
<?php
// まずは、入店して2つの注文
$orders = ["お通し", "ビール"];
// 次に焼き鳥の注文を追加します
array_push($orders, "ねぎま");
// 短縮構文を使って注文を追加します
$orders[] = "ビール";
$orders[3] = "ハイボール";
?>
$orders[3]をハイボールに変更しました。これは最後に注文したビールをハイボールに変更しました。
3というのは、配列の4番目という意味になります。
配列は、0のインデックスから始まるからです。2番目を変更する場合は、$orders[1]として1を使用します。
次は配列から要素を削除します。3番目の「ねぎま」の注文をキャンセルしてみます。
<?php
// まずは、入店して2つの注文
$orders = ["お通し", "ビール"];
// 次に焼き鳥の注文を追加します
array_push($orders, "ねぎま");
// 短縮構文を使って注文を追加します
$orders[] = "ビール";
$orders[3] = "ハイボール";
array_splice($orders, 2, 1);
?>
配列から要素を削除するには、array_spliceを使用するのがシンプルで分かりやすいです。
このarray_splice関数は、このように使います。
第一引数 | 要素を削除したい配列変数 |
第二引数 | 削除する要素のインデックス |
第三引数 | 何個の要素を削除するか |
上記のサンプルだと、$orders配列の2のインデックスから1個の要素を削除する。という意味になります。
次は、配列から要素を検索する方法を見ていきます。
<?php
// まずは、入店して2つの注文
$orders = ["お通し", "ビール"];
// 次に焼き鳥の注文を追加します
array_push($orders, "ねぎま");
// 短縮構文を使って注文を追加します
$orders[] = "ビール";
$orders[3] = "ハイボール";
array_splice($orders, 2, 1);
$index = array_search("ビール", $orders, true);
echo $orders[$index];
?>
このサンプルを実行すると、ビールが表示されます。$orders[$index]には、ビールが値として入っています。
array_search関数は、配列からビールの文字列を検索して、見つかったインデックスを取得することができるということです。
最後にソートをしてみます。ソートは、少し難しいかもしれないです。
ソートされたのが分かりやすいようにサンプルを変更して書いてみます。
<?php
// バラバラの数字を配列に初期化します
$numbers = [10, 8, 6, 4, 5, 7, 20];
sort($numbers);
foreach ($numbers as $n) {
echo $n . "\n";
}
?>
PHPにはソート用の関数が複数用意されています。今回は、一番簡単なsort関数を使ってみました。
これを実行すると、数値が小さい順に表示されます。
他の関数の使い方は、また別の記事で紹介します。
興味のある方は、PHPマニュアルを見てみてください。
まとめ
配列について基本的な操作を紹介しました。配列は他のプログラミング言語でも存在します。
大体どんなプログラミング言語でも、追加、変更、削除、検索、ソートくらいの操作は行うことができます。配列の基本を理解しておくと、他の言語を扱う場合でも、少し勉強するだけで、使用することができるはずです。
この配列は、実務でも必ず使用します。この記事をしっかり読み込み理解し、配列の扱い方を学びましょう。