【PHP入門】unset関数を使って配列から指定した要素(オブジェクト)を削除する方法
PHPでは、unset関数を使用することで、配列内の特定のインデックスにある要素(オブジェクト)を削除することができます。この記事では、実際のコード例を使いながら、その基本的な使い方をわかりやすく解説します。
コード例
以下の例では、4つの要素を持つ配列から、インデックス2の要素を削除しています。
$index = 2;
$objectarray = array(
0 => array('label' => 'abc', 'value' => 'n23'),
1 => array('label' => 'def', 'value' => '2n13'),
2 => array('label' => 'abcdef', 'value' => 'n214'),
3 => array('label' => 'defabc', 'value' => '03n2')
);
var_dump($objectarray);
foreach ($objectarray as $key => $object) {
if ($key == $index) {
unset($objectarray[$index]);
}
}
var_dump($objectarray);出力結果
上記のコードを実行すると、次のような出力が得られます。
array(4) { [0]=> array(2) { ["label"]=> string(3) "abc" ["value"]=> string(3) "n23" } [1]=> array(2)
{ ["label"]=> string(3) "def" ["value"]=> string(4) "2n13" } [2]=> array(2) { ["label"]=> string(6)
"abcdef" ["value"]=> string(5) "n214" } [3]=> array(2) { ["label"]=> string(6) "defabc" ["value"]=>
string(5) "03n2" } } array(3) { [0]=> array(2) { ["label"]=> string(3) "abc" ["value"]=> string(3)
"n23" } [1]=> array(2) { ["label"]=> string(3) "def" ["value"]=> string(4) "2n13" } [3]=> array(2)
{ ["label"]=> string(6) "defabc" ["value"]=> string(5) "03n2" } }コードの解説
まず、4つの要素を持つ配列を宣言し、変数$objectarrayに代入しています。削除したい要素のインデックス番号は、別途変数$indexとして宣言しておきます。
続いて、foreachループを使って配列を順番に走査し、走査中のキーが削除対象のインデックスと一致した時点で、その要素に対してunset関数を呼び出します。これにより、該当する要素だけが配列から取り除かれ、残りの要素が出力されます。
注意点:unset後のインデックスについて
unset関数で要素を削除すると、上記の出力結果にもあるように、インデックスは自動的には振り直されません。この例では、インデックス「2」の要素が削除されたため、残る要素は「0」「1」「3」という歯抜けの状態になります。
もしインデックスを0から連続した値に振り直したい場合は、array_values関数を組み合わせて使うと便利です。
$objectarray = array_values($objectarray);
このようにすることで、削除後の配列のキーを整えておくことができ、後続の処理で予期しない挙動を防ぐことにつながります。
-
PHPでオブジェクトを連想配列に変換する2つの方法を徹底解説
PHPアプリケーションでは、文字列、配列、オブジェクトなど、さまざまな形式のデータを扱います。実際の開発現場では、APIレスポンスやデータベースの結果など、PHPオブジェクトとして取得したデータを、連想配列の形式に変換して処理したい場面がよくあります。この記事では、PHPでオブジェクトを連想配列に変換する方法を、具体的なコード例とともにわかりやすく解説します。オブジェクトと連想配列とはまず、それぞれの基本概念をおさらいしましょう。オブジェクトとは、クラスから生成されるインスタンスのことです。1つのクラス定義から複数のオブジェクトを作成でき、各オブジェクトには個別のメモリが割り当てられます。クラ
-
PHPのarray()関数とは?配列の作成方法をわかりやすく解説
PHPのarray()関数は、配列を作成するための関数です。PHPにおける配列には、主に以下の3種類が存在します。インデックス配列 − 数値インデックス(0から始まる番号)で要素を管理する配列連想配列 − 文字列などの名前付きキーで要素を管理する配列多次元配列 − 配列の中に1つ以上の配列を含む、入れ子構造の配列構文// 数値インデックスを持つ配列(インデックス配列) array(value1, value2, ...); // 名前付きキーを持つ配列(連想配列) array(key1 => value1, key2 => value2, ...)パラメータvalue − 配列に