【STEP12】 配列操作 Part1

配列にデータをセットする(インデックスを使わない) 

《サンプル》

インデックスを使わない場合は、「0」から自動で割り当てられます。print() を使うと、配列のインデックスをまとめて表示することができます。(例: [0] => 埼玉)

<?php
$hairetu = array("埼玉","東京","大阪","京都");
echo "配列の内容 → ";
print_r($hairetu);
echo "<br>うち4番目は " .$hairetu[3] ."です";
?>

《実行結果》

配列の内容 → Array ( [0] => 埼玉 [1] => 東京 [2] => 大阪 [3] => 京都 )
うち4番目は 京都です


インデックスを指定して配列セットする 

《サンプル》

<?php
  $hairetu = array("sa"=>"埼玉","to"=>"東京","oo"=>"大阪","kyo"=>"京都");
  echo "配列の内容 → ";
  print_r($hairetu);
  echo "<br>インデックス[to]の値 → " .$hairetu["to"];
?>

《実行結果》

配列の内容 → Array ( [sa] => 埼玉 [to] => 東京 [oo] => 大阪 [kyo] => 京都 )
インデックス[to]の値 → 東京



一部のみインデックスを指定する 


《サンプル》

<?php
//一部だけインデックスを指定
$hairetu = array("コーギー","キャバリア","ビーグル","ownner"=>"飼い主");
echo "配列の内容 → ";
print_r($hairetu);
echo "<br>インデックス[ownner]の値 → " .$hairetu["ownner"];
echo "<p>";
//途中から数値インデックスを指定した場合、そこから番号が続く
$hairetu = array("コーギー",10=>"キャバリア","ビーグル","トイプードル");
echo "配列の内容 → ";
print_r($hairetu);

//途中から文字列インデックスを指定した場合
$hairetu = array("コーギー","キャバリア","be"=>"ビーグル","トイプードル");
echo "配列の内容 → ";
print_r($hairetu);
?>

《実行結果》

配列の内容 → Array ( [0] => コーギー [1] => キャバリア [2] => ビーグル [ownner] => 飼い主 )
インデックス[ownner]の値 → 飼い主

配列の内容 → Array ( [0] => コーギー [10] => キャバリア [11] => ビーグル [12] => トイプードル ) 配列の内容 → Array ( [0] => コーギー [1] => キャバリア [be] => ビーグル [2] => トイプードル )



配列データをデバッグに使う 

print_r()、var_dump()、var_export() 関数などを使うと、配列の内容を出力することができます。var_dump()関数を使うと、変数の型やサイズも出力されます。

《サンプル》

<?php
$hairetu = array("埼玉","東京","大阪","京都");
echo "配列内容:";
print_r($hairetu);

$hairetu = array(001=>"埼玉","to"=>"東京","oo"=>"大阪","kyo"=>"京都");
echo "<p> 配列内容:";
var_dump($hairetu);

$hairetu = array("sa"=>"埼玉","to"=>"東京","oo"=>"大阪","kyo"=>"京都");
echo "<p> 配列内容:";
var_export($hairetu);
?>

《実行結果》

配列内容:Array ( [0] => 埼玉 [1] => 東京 [2] => 大阪 [3] => 京都 )

配列内容:array(4) { [1]=> string(4) "埼玉" ["to"]=> string(4) "東京" ["oo"]=> string(4) "大阪" ["kyo"]=> string(4) "京都" }

配列内容:array ( 'sa' => '埼玉', 'to' => '東京', 'oo' => '大阪', 'kyo' => '京都', )



デバック中のみ配列の内容を表示する 

デバック中かどうかを判定する定数を用意して、処理中で判定させる。

《サンプル》

<?php
define("BL_DEBUG",1); //定数定義
$hairetu = array("埼玉","東京","大阪","京都");//配列セット

if (BL_DEBUG) {//判定
echo "配列内容:";
print_r($hairetu);
}
?>

《実行結果》

配列内容:Array ( [0] => 埼玉 [1] => 東京 [2] => 大阪 [3] => 京都 )


配列のデータをカウントする 

《サンプル》

<?php
$hairetu1 = array("埼玉","東京","大阪","大阪","京都","大阪");//配列セット
$hairetu2 = array_count_values($hairetu1);//配列の頻度を調べる
echo "配列内容:";
print_r($hairetu1);
echo "<p>出現頻度:";
print_r($hairetu2);
?>

《実行結果》

配列内容:Array ( [0] => 埼玉 [1] => 東京 [2] => 大阪 [3] => 大阪 [4] => 京都 [5] => 大阪 )

出現頻度:Array ( [埼玉] => 1 [東京] => 1 [大阪] => 3 [京都] => 1 )