PHPで連想配列を数字添字みたいに番号を指定して取得したい

PHPで連想配列のn番目の配列や値を取得する方法です。

array_sliceを使用した方法をご紹介します。

  

この記事は1年以上前に書かれたものです。
情報が古い可能性があります。

ソースコード

<?php
// 連想配列を定義
$human = array(
    "age" => 18,
    "name" => "L Lawliet",
    "favorite" => "sweets"
);

// 連想配列を出力
var_dump($human);

// 取得したい連想配列の番号(0から始まる)
$offset = 2;

// 取得する要素数
$length = 1;

// array_sliceを使用して連想配列の3番目を取得
var_dump(array_slice($human, $offset, $length, true));

// 連想配列の3番目の値を取得するためにcurrentを使用
var_dump(current(array_slice($human, $offset, $length, true)));

実行結果

array (size=3)
  'age' => int 18
  'name' => string 'L Lawliet' (length=9)
  'favorite' => string 'sweets' (length=6)

array (size=1)
  'favorite' => string 'sweets' (length=6)

string 'sweets' (length=6)

1つめのvar_dump

array (size=3)
  'age' => int 18
  'name' => string 'L Lawliet' (length=9)
  'favorite' => string 'sweets' (length=6)

2つめのvar_dump

array (size=1)
  'favorite' => string 'sweets' (length=6)

3つめのvar_dump

string 'sweets' (length=6)

参考

  

共有やブックマークなど