PHPプログラミング

レシピ

配列

配列の先頭から値を取り出す

array_shift関数を使って、配列の先頭から要素を取り出す方法について解説します。

この記事のポイント

  • 配列の先頭から要素を1つ取り出す
  • 配列の末尾から要素を取り出すときはarray_pop関数を使う
  • 配列の先頭に値を追加するときはarray_unshift関数を使う

目次

配列の先頭から要素を取り出す

array_shift関数を使うと、配列の先頭から要素を1つ取得することができます。

コード例

$value = array_shift($array);

配列$arrayの先頭から要素を1つ取り出して、$valueに代入します。
取り出した要素は$arrayからは削除されます。

もし取り出す要素がなかった場合には$valueNULLが代入されます。

コード例

<?php

// 取り出した要素を入れる変数
$dog = null;

// 配列を用意
$array = array( 'Shibaken', 'Pomeranian', 'Golden retriever', 'Greyhound', 'Siberian husky');

// 配列の先頭から要素を取得
$array_dog = array_shift($array);

// 配列から取得した値を出力
var_dump($dog);

// 取り出した後の配列を出力
var_dump($array);

$dog$arrayをそれぞれ出力した内容は次のようになります。

$dogの出力例

string(8) "Shibaken"

$arrayの出力例

array(4) {
[0]=> string(10) "Pomeranian"
[1]=> string(16) "Golden retriever"
[2]=> string(9) "Greyhound"
[3]=> string(14) "Siberian husky"
}

取り出した値が$dogに代入され、取り出した後の配列は先頭にあった要素が1つ消えていることが確認できます。

多次元配列の先頭から要素を取り出す

array_shift関数を多次元配列に使用した場合については、親要素を1つ取り出します。

コード例

<?php

// 取り出した要素を入れる変数
$dog = null;

$array = array(
	'dog1' => array(
		'id' => 1,
		'name' => 'Shibaken',
		'age' => 3
	),
	'dog2' => array(
		'id' => 2,
		'name' => 'Pomeranian',
		'age' => 5
	),
	'dog3' => array(
		'id' => 3,
		'name' => 'Golden retriever',
		'age' => 6
	),
	'dog4' => array(
		'id' => 4,
		'name' => 'Greyhound',
		'age' => 2
	)
);

// 配列の先頭から要素を取得
$dog= array_shift($array);

// 配列から取得した値を出力
var_dump($dog);

// 取り出した後の配列を出力
var_dump($array);

$dogの出力例

array(3) {
	["id"]=> int(1)
	["name"]=> string(8) "Shibaken"
	["age"]=> int(3)
}

$arrayの出力例

array(3) {
	["dog2"]=> array(3) {
		["id"]=> int(2)
		["name"]=> string(10) "Pomeranian"
		["age"]=> int(5)
	}
	["dog3"]=> array(3) {
		["id"]=> int(3)
		["name"]=> string(16) "Golden retriever"
		["age"]=> int(6)
	}
	["dog4"]=> array(3) {
		["id"]=> int(4)
		["name"]=> string(9) "Greyhound"
		["age"]=> int(2)
	}
}

このように、通常の配列同様に親要素を1つ取り出すことができます。
ただし、取り出した際に配列のキー(上記コードではdog1)は失われるので注意してください。

配列に残った要素については、数値が添字になっている配列の場合は先頭から0が振り直され、連想配列の場合は「キー」と「値」の組み合わせが保持されたままの状態となります。

こちらの関数は先頭の要素から順に取り出していきますが、反対に末尾から要素を取り出すことができるarray_pop関数も用意されています。
詳しくは、別記事「配列の末尾から値を取り出す」を参照してください。

また、array_shift関数の対になる関数として、配列の先頭に要素を追加するarray_unshift関数や、末尾に値を追加するarray_push関数もあります。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。