PHPの配列のまとめ〜PHP

PHPの配列のまとめ〜PHP

配列の基本的な作成方法はPHP基礎の記事も参考にしてください。
PHP基礎 (06) 配列
ここではもう少し詳しく配列の操作方法を学習します。

PHPの配列作成方法

インデックス配列の基本的な書き方は、空の配列をarray()で作成した後に各インデックスに値を代入します。
インデックスは0から始まります。

配列にした要素を展開するには該当するキーを指定します。

基本的な配列作成方法と要素の展開例
PHPコード

$book = array();
$book[0] = "コミック";
$book[1] = "文学書";
$book[2] = "歴史書";
$book[3] = "専門書";

echo $book[2];

配列はarray()構文の引数に値を入れる事でもっと簡単に作成することもできます。通常はこの方法をとります。

array()構文を使った例
PHPコード

$book = array("コミック","文学書","歴史書","専門書");
echo $book[3];

インデックス配列の要素を順番に全て書き出すにはforeach文を使用すると便利です。

foreach ($array_expression as $value){
$valueを含んだ命令文
}

foreachを使用してすべての要素を書き出す例
PHPコード

$book = array("コミック","文学書","歴史書","専門書");
$result="";
foreach($book as $val){
 $result .= $val."<br>";
}
echo $result;

ここで用いた「.=」は結合代入です。命令文で書き出された要素の値を変数に結合しながら代入します。
ポイントは$result=””;のように事前に初期化しておく必要があります。そうしないと1番最初の値が不明になり、警告が出ます。

配列に含まれる要素の数はcount()で求めることができます。

配列に含まれる要素の数を求める例
PHPコード

  $book = array("コミック","文学書","歴史書","専門書");
  $size = count($book);
  $result="";
  foreach($book as $val){
    $result .= $val."<br>";
  }
  echo $result;
  echo "<br>配列の要素の数は{$size}です。";

連想配列

インデックス配列はキーが0から始まる数字で作られますが、キーを自分の好きな文字列にすることもできます。
このような配列を連想配列と呼びます。キーと値をダブルアロー「=>」でつなぎます。

連想配列の書き方
PHPコード

$moon = array("1月"=>"睦月",
              "2月"=>"如月",
              "3月"=>"弥生",
              "4月"=>"卯月",
              "5月"=>"皐月",
              "6月"=>"水無月",
              "7月"=>"文月",
              "8月"=>"葉月",
              "9月"=>"長月",
              "10月"=>"神無月",
              "11月"=>"霜月",
              "12月"=>"師走",);
foreach($moon as $key=>$val){
  echo "<p>{$key}は {$val}</p>";
}

連想配列をforeach文で展開するには少し書き方が変わります。

foreach ($array_expression as $key => $value){
$key と $valueを含んだ命令文
}

range(開始値, 終了値)を使うと引数で指定した開始値から終了値まで順番に増加する配列を作成することができます。
数字かアルファベットの配列を作成するときに便利です。

range()を使った配列の例
PHPコード

  $book = range("a","z");
  $result="";
  foreach($book as $val){
    $result .= $val;
  }
  echo $result;

配列の追加と削除

配列の要素の追加と削除をまとめると次のようになります。

php1

array_unshift()

array_unshift() は、array の先頭に指定された要素を加えます。配列の数値添字はすべて新たにゼロから振りなおされます。
返り値は array の要素の数です。
array_unshiftの例
phpコード

  $book = array("コミック","文学書","歴史書","専門書");
  $unshift = array_unshift($book,"絵本","写真集");
  $result="";
  foreach($book as $val){
    $result .= $val."<br>";
  }
  echo $result;
  echo $unshift; //返り値は処理後の array の要素の数

array_push()

指定された要素を array の最後に加えます。配列 array の長さは渡された変数の数だけ増加します。
返り値は array の要素の数です。
array_pushの例
PHPコード

  $book = array("コミック","文学書","歴史書","専門書");
  $push = array_push($book,1,2,3,"絵本","写真集");
  $result="";
  foreach($book as $val){
    $result .= $val."<br>";
  }
  echo $result;
  echo $push; //返り値は処理後の array の要素の数

array_slice()

第2引数で指定した要素から第3引数で指定した個数を切り取ります。
返り値は切り取った要素を返します。もともとの配列に変化はありません。
slice
array_sliceの例
PHPコード

  $book = array("コミック","文学書","歴史書","専門書");
  $book2 = array_slice($book, 0,2);
  $result="";
  foreach($book2 as $val){
    $result .= $val."<br>";
  }
  echo "array_sliceの返り値は<br>".$result;
  $result="";
  foreach($book as $val){
    $result .= $val."<br>";
  }
  echo "当初の配列の値は次のように変わらない<br>".$result;

array_splice()

これは切り取りと置換関連の配列操作を行うことができる便利な関数ですが、使い方がわかりにくいのが難点です。
配列変数から第2引数で指定した要素から第3引数で指定した個数を切り取ります。array_slice()との違いは切り取られた配列の値が本当に切り取られてなくなります。
splice

また、さらに第4引数に置き換えの値を指定すると、削除された値の中に置き換えの値が入ります。
複数の値を入れたい場合は第4引数に配列を指定します。
splice2
array_spliceの例
PHPコード

  $book = array("コミック","文学書","歴史書","専門書");
  array_splice($book,1,2,"a");
  $result="";
  foreach($book as $val){
    $result .= $val."<br>";
  }
  echo $result;

array_spliceの返り値の例
PHPコード

$book = array("コミック","文学書","歴史書","専門書");
  $book2=array_splice($book,1,2,"a");
  $result="";
  foreach($book2 as $val){
    $result .= $val."<br>";
  }
  echo $result;

ちょっと変わった例として、file()があります。これはファイルの読み込みや書き込みて利用するものです。
file()の例
PHPコード

$tenki = file("tenki.txt");
  $result="";
  foreach($tenki as $val){
    $result .= $val."<br>";
  }
  echo $result;