PHP 配列の仕組みと使い方のサンプル

PHPの配列の仕組みと使い方のサンプルです。

確認環境
・PHP 7.2.8

目次

仕組み 配列とは
作成する 配列を作成する
取得する 配列の値をfor文で取得する
  指定の値があるか真偽値を返す(in_array)
  指定の値のキー(位置)を返す(array_search)
追加する 配列の末尾に値を追加する
  配列の先頭に値を追加する(array_unshift)
  任意の位置に値を追加する(array_splice)
更新する 配列の値を更新する
  配列の値を削除する(unset)
配列の種類 連想配列を作成する
  多次元配列を作成する

配列とは

  • 1つの変数で複数の値を保持できます。
  • 各項目を要素(element)といいます。
  • 配列のそれぞれの値は添字(インデックス番号)でアクセスできます。上記図では[0]、[1]、[2]、[3]が添字です。
  • 添字は0から始まります。
  • 以下は、PHPマニュアルの配列のリンクです。
    http://php.net/manual/ja/language.types.array.php

配列を作成する

配列を作成するサンプルです。

<?php

$ar1 = ["赤","黄","青"];
//$ar1 = array("赤","黄","青");

print_r($ar1); //Array ( [0] => 赤 [1] => 黄 [2] => 青 )

echo $ar1[0]; // 赤
echo $ar1[1]; // 黄
echo $ar1[2]; // 青

?>

3行目は、配列を作成しています。
4行目は、arrayで配列を作成しています。※PHP 5.4からarrayを使用せずに配列を作成できるようになりました。
http://php.net/manual/ja/migration54.new-features.php
6行目は、配列の値を表示しています。
8~10行目は、添字を指定してそれぞれの値を表示しています。

配列の値をfor文で取得する

配列の値をfor文で取得するサンプルです。

<?php
$color = ['赤','黄','青'];

foreach ($color as $a){
	echo $a; //赤 黄 青
}

for ($i = 0 ,$size = count($color); $i < $size; ++$i) {
	echo $color[$i]; //赤 黄 青
}
?>

4~6行目は、foreach文で配列の各値を表示しています。
8~10行目は、for文で配列の各値を表示しています。
8行目のfor文は、1つ目の引数の箇所(初期化式)で配列のサイズ($size = count($color))を取得しています。2つ目の引数の箇所(条件式)でcountを使用すると都度countを実行してしまい遅くなるためです。

以下は、PHPマニュアルのforのリンクです。
http://php.net/manual/ja/control-structures.for.php

指定の値があるか真偽値を返す(in_array)

指定の値があるか真偽値を返すサンプルです。

<?php

$c1 = ["赤","黄","青"];

if (in_array("赤",$c1)){
    print_r("存在します"); //存在します
}

if (in_array("白",$c1)){
    print_r("存在します");
}else{
    print_r("存在しません"); //存在しません
}
?>

in_arrayは、ひとつめの引数の値が配列に存在する場合はtrue、存在しない場合はfalseを返します。

指定の値のキー(位置)を返す(array_search)

指定の値のキー(位置)を返すサンプルです。

<?php

$c1 = ["赤","黄","青"];

print(array_search("赤",$c1)); //0
print(array_search("黄",$c1)); //1
print(array_search("青",$c1)); //2
var_export(array_search("白",$c1)); //false

?>

5~7行目は、array_searchで指定した値のキー(位置)を返します。最初は0から始まります。
8行目は、指定した値が存在しないのでfalseが返ります。

配列の末尾に値を追加する

配列の末尾に値を追加するサンプルです。

<?php

$color = ["赤","黄","青"];

$color[] = "白";

print_r($color);//Array([0] => 赤 [1] => 黄 [2] => 青 [3] => 白)

?>

5行目は、配列の最後尾に値を追加しています。

配列の先頭に値を追加する(array_unshift)

配列の先頭に値を追加するサンプルです。

<?php

$color = ["赤","黄","青"];

array_unshift($color,"白");

print_r($color);//Array ( [0] => 白 [1] => 赤 [2] => 黄 [3] => 青 )

?>

5行目は、array_unshiftで配列の先頭に値を追加しています。

任意の位置に値を追加(array_splice)

配列の任意の位置に値を追加するサンプルです。

<?php

$c1 = ["赤","黄","青"];

array_splice($c1,1,0,"白");

print_r($c1);//Array ( [0] => 赤 [1] => 白 [2] => 黄 [3] => 青 )

$c2 = ["赤","黄","青"];

array_splice($c2,1,1,"白");

print_r($c2);//Array ( [0] => 赤 [1] => 白 [2] => 青 )
?>

5行目は、array_spliceで配列の任意の位置に値を追加しています。
ひとつめの引数は位置です。位置は0から始まります。2つめの引数は0にします。
0以外の数値の場合は、11行目のように指定した数値の分文字が置き換わります。

配列の値を更新する

配列の値を更新するサンプルです。

<?php

$color = ["赤","黄","青"];

$color[1] = "オレンジ";

print_r($color);//Array ( [0] => 赤 [1] => オレンジ [2] => 青 )

?>

5行目は、添字を指定して配列の値を更新しています。

配列の値を削除する(unset)

配列の値を削除するサンプルです。

<?php

$color = ["赤","黄","青"];

unset($color[1]);

print_r($color);//Array ( [0] => 赤 [2] => 青 )

?>

5行目は、unset関数で配列の要素を削除しています。添字は自動でつまりません。「0→2」となり1がありません。

連想配列を作成する

連想配列を作成するサンプルです。キーと値があります。

<?php

$ar1 = ['c1'=>'赤',
		'c2'=>'黄',
		'c3'=>'青'
	];
//$ar1 = array('c1'=>'赤', 'c2'=>'黄', 'c3'=>'青');

print_r($ar1); //Array ( [c1] => 赤 [c2] => 黄 [c3] => 青 ) 

print $ar1['c1']; // 赤
print $ar1['c2']; // 黄
print $ar1['c3']; // 青

?>

3~6行目は、キーと値を指定して連想配列を作成しています。
7行目は、arrayで連想配列を作成します。
※PHP 5.4からarrayを使用せずに配列を作成できるようになりました。
http://php.net/manual/ja/migration54.new-features.php
11~13行目は、キーを指定してそれぞれの値を表示しています。

 

多次元配列を作成する

多次元配列を作成するサンプルです。

<?php

$ar1 = [
	"色の種類2",
	["赤2","黄2","青2"],
	["緑2","白2","黒2"]
];

print_r($ar1);
//Array ( [0] => 色の種類2 
//        [1] => Array ( [0] => 赤2 [1] => 黄2 [2] => 青2 ) 
//        [2] => Array ( [0] => 緑2 [1] => 白2 [2] => 黒2 ) )

print $ar1[0]; // 色の種類2
print $ar1[1][0]; // 赤2
print $ar1[1][1]; // 黄2
print $ar1[1][2]; // 青2
print $ar1[2][0]; // 緑2
print $ar1[2][1]; // 白2
print $ar1[2][2]; // 黒2
?>

3~7行目は、ブラケット[ ]を使用して多次元配列を作成しています。
9行目は、print_r()で変数の情報を表示しています。

関連の記事

PHP 配列の値をループで取得するサンプル(foreach文)
PHP 変数から連想配列を作成するサンプル(compact)
PHP 連想配列から変数を作成するサンプル(extract)

△上に戻る