1. ホーム 
  2. 備忘録 
  3. PHP

配列

配列の宣言

PHP の配列には、要素番号と内容を持つ通常の配列と、キーバリュー形式の連想配列がある

配列の宣言方法を以下に記載する

// array() で定義する方法
$array = array( 1, 2, 'hi' );

// 短縮構文
$array = [ 1, 2, 'hi' ];

// 連想配列パターン
$array = array(
  'foo' => 1,
  'bar' => 2,
  'baz' => 'hi',
);

// 連想配列でも短縮構文は使える
$array = [
  'foo' => 1,
  'bar' => 2,
  'baz' => 'hi',
];

キー部分は整数または文字列である必要がある
bool型やnull、float型などはキャストされるため、キャスト後の値がわからなければ避けること(そもそも使用しないで済むならしない一択)

バリュー部分は任意の型を指定可能


また、キーを一部だけ指定したパターンでは自動的に割り振られる要素番号がそれまでにキーとして使われた最大の整数の次の値になることに注意する

例を以下に記載する

$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);

/*
array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>           // ここが 7 から始まることに注意
  string(1) "d"
}
*/

配列の使用

配列の要素を取り出したいときは取得したい値と紐づく 要素番号 または キー を指定する方法がある

他にも配列全体をループ処理で回して取得する方法がある

$array = array(
         "a",
         "b",
    "red" => "tomato",
         "c",
    "yellow" => "lemon",
);

/*
array(5) {
  [0]=> string(1) "a"
  [1]=> string(1) "b" 
  ["red"]=> string(6) "tomato" 
  [2]=> string(1) "c" 
  ["yellow"]=> string(5) "lemon" 
}
*/

// 要素単体を取る方法
echo $array[2] . PHP_EOL;         // c
echo $array["yellow"] . PHP_EOL;  // lemon

// 値だけを取り出す場合
foreach( $array as $value )
{
  echo $value . PHP_EOL; // 値だけ表示
}

// キー(または要素番号)とバリューを取り出す場合
foreach( $array as $key => $value )
{
  echo $key . ':' . $value . PHP_EOL; // 値だけ表示
}