【PHP】連想配列の先頭に要素を追加する方法 – array_unshiftの使い方
PHPで連想配列や通常の配列の先頭に新しい要素を追加したい場合は、array_unshift() 関数を使用します。この関数は、指定した値を配列の冒頭に挿入し、既存の要素をすべて後ろへずらします。引数として複数の値を渡すことも可能です。
サンプルコード1:文字列キーの連想配列の場合
<?php $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110", "t"=>"115", "u"=>"103", "v"=>"105", "w"=>"125" ); echo "初期配列...\n"; print_r($arr); array_unshift($arr,"100"); echo "更新後の配列...\n"; print_r($arr); ?>
実行結果
初期配列... Array( [p] => 150 [q] => 100 [r] => 120 [s] => 110 [t] => 115 [u] => 103 [v] => 105 [w] => 125 ) 更新後の配列... Array ( [0] => 100 [p] => 150 [q] => 100 [r] => 120 [s] => 110 [t] => 115 [u] => 103 [v] => 105 [w] => 125 )
実行結果を見ると、新しく追加された値「100」には自動的に数値キー [0] が割り当てられ、元の文字列キー(p、q、r など)はそのまま保持されていることがわかります。これが array_unshift() の重要な特徴です。
サンプルコード2:数値キーの配列の場合
次に、数値キーを持つ配列に対して array_unshift() を使用した例を見てみましょう。
<?php $arr = array( 0=>"Ryan", 1=>"Kevin", 2=>"Jack" ); echo "初期配列...\n"; print_r($arr); array_unshift($arr,"Katie"); echo "更新後の配列...\n"; print_r($arr); ?>
実行結果
初期配列... Array( [0] => Ryan [1] => Kevin [2] => Jack ) 更新後の配列... Array( [0] => Katie [1] => Ryan [2] => Kevin [3] => Jack )
この場合、新要素「Katie」が先頭に挿入され、既存の数値キーはすべて振り直されています。Ryan・Kevin・Jack はそれぞれ [1]、[2]、[3] へとシフトしていますね。
ポイントまとめ
array_unshift()は配列の先頭に1つ以上の要素を追加できる- 文字列キーは変更されず、そのまま維持される
- 数値キーは新たに振り直され、既存の要素は後ろへシフトする
- 戻り値は追加後の配列ではなく、要素の総数である点に注意
-
PHPで連想配列の重複要素を削除する方法
array_map関数とはPHPのarray_map関数は、配列の各要素の値をユーザー定義関数に渡し、その関数を各要素に適用した結果として新しい配列を返します。これにより、配列全体の要素に対して一括で処理を行うことができます。array_map関数の構文array_map ( ユーザー定義関数, array_1, array_2, array_3…)ユーザー定義関数とarray_1は必須の引数ですが、array_2以降の配列は省略可能です。連想配列の重複を削除する例多次元の連想配列から重複した要素を削除するには、serialize関数とunserialize関数をarray_ma
-
PHPでオブジェクトを連想配列に変換する方法【json_encodeと型キャストの2つの手法】
PHPで開発をしていると、オブジェクトのプロパティを連想配列として扱いたい場面がよくあります。例えば、APIレスポンスの整形やデータの汎用的な処理を行う際などです。この記事では、PHPでオブジェクトを連想配列に変換する代表的な2つの方法を、サンプルコードと実行結果付きでわかりやすく解説します。 方法1:json_encode() と json_decode() を使う方法 最もシンプルで広く使われているのが、json_encode() でオブジェクトをJSON文字列に変換し、json_decode() の第2引数に true を渡して連想配列に戻す方法です。 サンプルコード <?ph