配列の 追加と削除
配列に要素を追加
- 配列に要素を追加したい場合は、array_unshift関数、array_push関数を使います
- この関数は、配列に要素を追加するとともに、要素が追加された配列の要素数を取得できます
array_unshift - 配列の先頭に要素を追加したい場合
配列の先頭に要素を追加した後の要素数 = array_unshift( 要素を追加したい配列変数名, 追加したい要素1, 追加したい要素2,・・・ );
array_push - 配列の最後に要素を追加したい場合
配列の最後に要素を追加した後の要素数 = array_push( 要素を追加したい配列変数名, 追加したい要素1, 追加したい要素2,・・・ );
<?php // 配列変数$fruitの宣言と初期化 $fruit = array ( 'いちご' ); // 配列の先頭に要素を追加します $cnt = array_unshift ( $fruit, 'りんご', 'すいか' ); echo $fruit[0] . '<br>'; // 配列の先頭要素'りんご'を表示します echo $fruit[1] . '<br>'; // 配列の次の要素'すいか'を表示します echo $fruit[2] . '<br>'; // 配列のその次の要素'いちご'を表示します echo $cnt; // 要素追加後の配列要素数「3」を表示します
- 最初にいちごが格納されている配列に、array_unshift関数を使用して、りんごとすいかを配列の先頭に追加しています
<?php // 配列変数$stationの宣言と初期化 $station = array ( '上野' ); // 配列の最後に要素を追加します $cnt = array_push ( $station, '秋葉原', '銀座' ); echo $station[0]; // 配列の先頭要素'上野'を表示します echo '<br>'; echo $station[1]; // 配列の次の要素'秋葉原'を表示します echo '<br>'; echo $station[2]; // 配列のその次の要素'銀座'を表示します echo '<br>'; echo $cnt; // 要素追加後の配列要素数「3」を表示します echo '<br>';
- 最初に上野が格納されている配列に、array_push関数を使用して、秋葉原と銀座を配列の最後に追加しています
配列の要素を削除
- 配列の要素を削除したい場合は、array_shift関数、array_pop関数を使います
配列の先頭から要素を削除したい場合
array_shift - 削除した要素 = array_shift( 要素を削除したい配列変数名 );
配列の最後から要素を削除したい場合
array_pop - 削除した要素 = array_pop( 要素を削除したい配列変数名 );
<?php // 配列変数$kenの宣言と初期化 $ken = array ( '秋田', '長崎', '神奈川' ); // 配列の先頭から要素を削除します $del_ken = array_shift( $ken ); // 削除した要素を表示します echo $del_ken; echo '<br>'; // 配列の要素数を表示します echo count( $ken ); echo '<br>';
- 最初に秋田、長崎、神奈川が格納されている配列に、array_shift関数を使用して、先頭の秋田を削除しています
<?php // 配列変数$recipeの宣言と初期化 $recipe = array ( 'パスタ', 'うどん', 'カレー' ); // 配列の最後から要素を削除します $del_recipe = array_pop ( $recipe ); // 削除した要素を表示します echo $del_recipe; echo '<br>'; // 配列の要素数を表示します echo count ( $recipe ); echo '<br>';
- 最初にパスタ、うどん、カレーが格納されている配列に、array_pop関数を使用して、最後のカレーを削除しています
配列をループ
- foreach
<?php // 配列に関するループ $youbi = array("Sun", "Mon", "Tue"); $sales = array("tanaka"=>150, "taguchi"=>200); // foreach /* foreach ($youbi as $y) { echo $y; } */ foreach ($sales as $name => $amount) { echo $name, $amount; }