PHP

配列の末尾から値を取り出す

  1. 最終更新日:
  2. 公開日:

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

この記事のポイント

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

配列の末尾から要素を取り出す

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

PHP コード例

$value = array_pop($array);

配列$arrayの末尾から要素を1つ取り出して$valueに代入します。
取り出した要素は$arrayからは削除されるため、$arrayは長さが1つ短くなります。

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

PHP コード例

<?php

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

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

// 配列の末尾から要素を取得
$dog = array_pop($array);

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

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

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

$dogの出力例

string(14) "Siberian husky"

$arrayの出力例

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

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

多次元配列の末尾から要素を取り出す

多次元配列についてもarray_pop関数は同様に使用することができ、末尾にある親要素を1つ取り出します。

PHP コード例

<?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_pop($array);

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

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

$dogの出力例

array(3) {
  ["id"]=> int(4)
  ["name"]=> string(9) "Greyhound"
  ["age"]=> int(2)
}

$arrayの出力例

array(3) {
  ["dog1"]=> array(3) {
    ["id"]=> int(1)
    ["name"]=> string(8) "Shibaken"
    ["age"]=> int(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」の要素が取り出されて$dogに代入されます。
取り出した際に配列のキー「dog4」は失われるので注意してください。

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

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

記事一覧

関連記事