配列

PHPのシンタックス

  1. HOME
  2. 配列

配列を作る

[]に値だけ入っているのが、インデックス配列
キーと値がペアになっているのが連想配列
インデックス配列
$myArray = [値1,値2,値3,...]

配列から値を取り出す&値の変更&for文を利用

桃太郎さん 金太郎さん 一寸法師さん 織姫さん
桃太郎さん 金太郎さん 一寸法師さん 織姫さん
<?php
$teamA = ["桃太郎", "金太郎", "一寸法師", "赤鬼"];
$teamA[3] = "織姫";
echo $teamA[0], "さん\n";
echo $teamA[1], "さん\n";
echo $teamA[2], "さん\n";
echo $teamA[3], "さん\n <br>";

for ($i = 0; $i < count($teamA); $i++) {
  echo $teamA[$i],"さん\n";
}
?>

array()でインデックス配列を作る

$myArray = array(値1,値2,値3,...);
※この配列で出力をするには、print_r()またはvar_dump()を使います。echo()では、配列を出力できません。print_r()で出力すると[0] => 値 のようにインデックス番号とその値がペアで表示されます。
Array ( [0] => 赤 [1] => 黄 [2] => 青 )
<?php
$colors = array("赤","黄","青");
print_r($colors);
?>

配列に値を追加する

からの配列を作ります。配列は[]かarray()で作ることが可能。値の追加は、array_push(配列,値)のように実行するか、インデックス番号を指定せずに値を代入します。

空の配列を追加と番号指定

Array ( [0] => 赤 [1] => 青 [3] => 黄 [4] => 白 )
<?php
$colors = [];

$colors[] = "赤";
$colors[] = "青";
$colors[3] = "黄";
$colors[] = "白";
print_r($colors);
?>
連想配列
$myArray = [キー1 => 値1,キー2 => 値2,キー3 => 値3,...]
連想配列もインデックス配列と同様に、array()で作成可

インデックス配列をprint_r()で出力すると連想配列と形式が共通している。インデックス配列はキーが0,1,2...と連番がつけられた連想配列だと言える。ただし、値をソートしたり削除・挿入すると、インデックス番号は自動的に付け直されてしまいます。キーと値がペアになっていないことに注意が必要です。

連想配列の作成&キーで指定した値を取り出す

Array ( [id] => Pixel [type] => pro [price] => 65000 )
id:Pixel
タイプ:pro
価格:65,000円
<?php
$fhon = [
  "id" => "Pixel",
  "type" => "pro",
  "price" => "65000"
];
print_r($fhon);
//キーで指定した値を取り出す
echo "id:" . $fhon["id"] . "\n <br>";
echo "タイプ:" . $fhon["type"] . "\n <br>";
echo "価格:" . number_format($fhon["price"]) . "円\n <br>";
?>

空の連想配列に要素を追加していく

Array ( [name] => 城山桃太郎 [kana] => シロヤマモモタロウ [age] => 25 )
<?php
$user = [];
$user["name"] = "城山桃太郎";
$user["kana"] = "シロヤマモモタロウ";
$user["age"] = "25";
print_r($user);
?>

文字列から配列&配列から文字列を作る

カンマや改行などで区切られた文字列から配列を作ることが出来ます。使うのはexplode()です。第1引数に区切り文字、第2引数に文字列、第3引数で最大個数を指定できる。
逆にimplode()は配列の値を連結して1つの文字列にします。

カンマで区切った名前リストから配列を作る

Array ( [0] => 桃太郎 [1] => 金太郎 [2] => 一寸法師 [3] => 赤鬼 )
<?php
$data = "桃太郎,金太郎,一寸法師,赤鬼";
$delimiter = ",";
$nameList = explode($delimiter, $data);
print_r($nameList);
?>

配列から文字列の名前リストを作る

桃太郎さん、金太郎さん、一寸法師さん、赤鬼さん
<?php
$data = ["桃太郎", "金太郎", "一寸法師", "赤鬼"];
$glue = "さん、";
$nameList = implode($glue, $data);
$nameList .= "さん";
print_r($nameList);
?>

配列を定数にする

<?php
define("RANK",["松","竹","梅"]);
echo RANK[2];
?>