PHP/配列

出典: フリー教科書『ウィキブックス(Wikibooks)』
< PHP
ナビゲーションに移動 検索に移動

PHPにおける 配列(はいれつ,英: array )とは、ひとつの名前で、複数のデータを保持できるものです。

概要[編集]

たとえば、

    $seitomei[0] = "ミシマ ユキオ" ;
    $seitomei[1] = "オオエ ケンザブロー" ;
    $seitomei[2] = "イシハラ シンタロー" ;

のようなものです。この例の場合、配列名「seitomei」で、「ミシマ ユキオ」「オオエ ケンザブロー」「イシハラ シンタロー」という別々のデータを保持しています。

PHPにかぎらず配列の番号は、普通、0番から数えます。また、PHPにかぎらず、配列の番号は、正の整数(いわゆる自然数)でなければなりません。

なお、上記サンプルでは説明の簡単化のた、文字列を代入していますが、配列には数値や変数なども代入することができます。


PHPの配列の書式は、

$配列名[番号]

です。

説明の簡単化のため「番号」といいましたが、「インデックス」という場合や、「添字」(そえじ、「添え字」とも書く場合もアリ)という場合もあります。


PHPでは、

$配列名[番号] = データ;

の書式を使えば、配列にデータをいきなり代入できます。(C言語とは違って、あらかじめ配列の要素の数を宣言する必要は無い。)


コード例
<html>
<head>
<title>配列サンプル</title>
</head>

<body>

<?php

    $seitomei[0] = "ミシマ ユキオ" ;
    $seitomei[1] = "オオエ ケンザブロー" ;
    $seitomei[2] = "イシハラ シンタロー " ;
	
	
    print $seitomei[1] ."<br />" ;
	
    print_r ($seitomei);
    print "<br />" ;
?>	

</body>
</html>

(※ 2020年5月13日に Fedora32 およびブラウザ Firefox で動作を確認ずみ。以降のコードも特に断らないかぎり同様。)

実行結果

オオエ ケンザブロー
Array ( [0] => ミシマ ユキオ [1] => オオエ ケンザブロー [2] => イシハラ シンタロー ) 

あるいは、別の実行結果として、PHPの設定やバージョンによっては改行されて、

オオエ ケンザブロー
Array (
    [0] => ミシマ ユキオ 
    [1] => オオエ ケンザブロー 
    [2] => イシハラ シンタロー 
) 

となる場合もあります。

なお、 print_r 関数で、上記の例のArray以降のように、配列の中身を一覧表示できます。

phpでは、組み込み関数 count で、その配列の要素の個数を数えることができます。

コード例
<html>
<head>
<title>配列サンプル</title>
</head>

<body>

<?php

    $seitomei[0] = "ミシマ ユキオ" ;
    $seitomei[1] = "オオエ ケンザブロー" ;
    $seitomei[2] = "イシハラ シンタロー " ;


    print (count($seitomei) );
    print "<br />" ;
?>	

</body>
</html>


実行結果
3

この「3」という数字の意味は、$seitomei[0] と $seitomei[1] と $seitomei[2] というように配列 seitomei が合計3つ宣言されているので「3」という意味です。


配列のいろいろな宣言のしかた[編集]

PHPでは下記のように array 演算子を使って、一括で要素を配列に代入することもできます。

書式

$配列名 = array(データ1, データ2, … );


コード例
<html>
<head>
<title>配列サンプル</title>
</head>

<body>

<?php

    $seitomei = array("ナツメ ソーセキ","ダザイ オサム","モリ オーガイ", "カワバタ ヤスナリ") ;
    
    print_r ($seitomei);
    print "<br />" ;
?>	

</body>
</html>


実行結果
Array ( [0] => ナツメ ソーセキ [1] => ダザイ オサム [2] => モリ オーガイ [3] => カワバタ ヤスナリ ) 


豆知識[編集]

PHPの場合、配列に番号を書かなくても、勝手に判断してくれる。

コード例
<html>
<head>
<title>配列サンプル</title>
</head>

<body>

<?php

    $seitomei[] = "ミシマ2世" ;
    $seitomei[] = "オオエ2世" ;
    $seitomei[] = "イシハラ2世 " ;
	
	
    print $seitomei[1] ."<br />" ;
	
?>	

</body>
</html>


実行結果
オオエ2世


多次元配列[編集]

PHPにかぎらず、配列の要素のなかに配列が入っている配列のことを「多次元配列」(たじげん はいれつ)といいます。C言語にも、多次元配列はあります。その他、一般的なプログラミング言語のほとんどは、多次元配列の機能をサポートしています。

一般に、

配列が二重になっているなら「二次元配列」、
配列が三重になっているなら「三次元配列」、

といいます。


コード例
<html>
<head>
<title>配列サンプル</title>
</head>

<body>

<?php

    $seitomei = array(
        array("ミシマ", "オオエ", "イシハラ" ),
        array("ナツメ2", "ダザイ2", "モリ2", "カワバタ2")
    );
	
    print $seitomei[1][2] ."<br />" ;
	
    //print_r ($seitomei);
    //print "<br />" ;
?>	

</body>
</html>
実行結果
モリ2


※ 配列は0番から数えることに注意。よくあるミスで、多次元になるとついウッカリ、1から数えてしまうミスもある。

連想配列[編集]

この節は書きかけです。この節を編集してくれる方を心からお待ちしています。