配列から特定の要素を削除する方法
通常配列、連想配列それぞれから特定の要素を削除する方法をいくつかご紹介します。
連想配列(unset関数)
連想配列から特定の要素を削除する場合、unset関数を使用します。
$array = array('key1' => 'a', 'key2' => 'b', 'key3' => 'c', 'key4' => 'd');
//要素(key3)を削除
unset($array['key3']);
var_dump($array);
// 結果:array(3) { ["key1"]=> string(1) "a" ["key2"]=> string(1) "b" ["key4"]=> string(1) "d"}
通常配列(array_splice関数、unset関数、array_values関数、array_diff関数)
通常配列から特定の要素を削除する場合、いくつかの関数を使用できます。
●array_splice関数(1つの値の削除や連続する値の削除に適している)
$array = array('a', 'b', 'c');
// bを削除
array_splice($array, 1, 1);
var_dump($array);
// 結果:array(2) { [0]=> string(1) "a" [1]=> string(1) "c" }
//連続した値の削除
$array2 = array('a', 'b', 'c', 'd', 'e');
//削除実行
array_splice($array2, 1, 2);//連続した2つの値を削除
var_dump($array2);
// 結果:array(3) { [0]=> string(1) "a" [1]=> string(1) "d" [2]=> string(1) "e"}
●unset関数とarray_values関数の併用(複数の値を削除するのに適している)
$array = array('a', 'b', 'c', 'd', 'e', 'f');
foreach ($array as $key => $val) {
if($val = 'b' || $val = 'd' || $val = 'f'){
// 値がbかdかfの場合、削除
unset($array[$key]);
}
}
// unsetのみだとIndexの欠番が発生してしまうためをIndexを詰めるためにarray_valuesを使用する
array_values($array);
var_dump($array);
// 結果:array(3) { [0]=> string(1) "a" [1]=> string(1) "c" [2]=> string(1) "e"}
// array_values関数を使用しない場合、Indexが詰められないため、
// array(3) { [0]=> string(1) "a" [2]=> string(1) "c" [4]=> string(1) "e"}
// このようになってしまう
●array_diff関数とarray_values関数の併用(要素そのものを指定して削除するのに適している)
$array = array('a', 'b', 'c', 'd');
// 値がaとcの要素を削除
$result = array_diff($array, array('a', 'c'));
// array_diffのみだとIndexを詰めるためにarray_valueを使用する
$result = array_values($result);
var_dump($result);
// 結果:array(2) { [0]=> string(1) "b" [1]=> string(1) "d" }
// array_values関数を使用しない場合、Indexが詰められないため、
// array(2) { [1]=> string(1) "b" [3]=> string(1) "d" }
// このようになってしまう
さらにPHPに関する知識を深められたい方へ
さらにPHPに関する知識を深められたい場合、筆者も利用しているUdemyで学習することをお勧めします。
参考までに、初心者にもおすすめのプログラムは
【PHPの勉強に予算をかけて、本気で勉強されたい方】
・ちゃんと学ぶ、PHP+MySQL(MariaDB)入門講座
→初心者でも始めることができ、このプログラムを利用すると、会員登録をしたユーザーに個別のコンテンツを提供したり、ユーザー同士のコミュニティを作成したり、またデータベースと連携してショップサイトや、データの検索サイトなど、さまざまなWebサービス・Webシステムを開発することができます。
【初めはそこまで予算をかけず、PHPについて勉強されたい方】
・現役Webエンジニアが教えるPHP,MySQL,dockerを使用したフルスクラッチ開発
→PHPでの開発を網羅的に勉強することができ、初心者にもおすすめです。
上記以外の講座を購読されたい方は以下のリンクからPHP講座の一覧ページを確認することができます。
UdemyのPHP一覧ページはここから。
ぜひご活用ください!
コメント