【PHP8.x】array_key_first関数の使い方

作成日: 更新日:

『array_key_first関数は、指定された配列の最初のキーを取得する処理を実行する関数です。この関数は、引数として渡された配列の内部的な順序における、一番初めの要素のキーを返します。対象となる配列が空でなければ、キーの型に応じて整数または文字列が返されます。もし引数に空の配列が指定された場合は、nullを返すため、返り値を確認することで配列が空かどうかの判定にも利用できます。この関数の重要な特徴は、配列の内部ポインタを一切変更しない点です。従来のreset関数とkey関数を組み合わせて最初のキーを取得する方法とは異なり、array_key_first関数は副作用を及ぼさないため、配列の現在の状態を維持したまま安全に最初のキーを取得したい場合に非常に役立ちます。連想配列でも数値添字配列でも同様に動作し、配列の先頭要素のキーを効率的に取得するためのシンプルで直感的な手段を提供します。

基本的な使い方

構文(syntax)

<?php
$array = ['apple' => 1, 'banana' => 2, 'cherry' => 3];
$firstKey = array_key_first($array);
?>

引数(parameters)

array $array

  • array $array: firstキーを取得したい配列

戻り値(return)

string|int|null

指定された連想配列の最初のキーの値を返します。配列が空の場合は null を返します。

サンプルコード

PHP:連想配列の最初のキーを取得する

<?php

/**
 * associative array の最初のキーを取得するサンプルコード
 */

$array = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
];

// array_key_first 関数を使って最初のキーを取得
$firstKey = array_key_first($array);

// 結果を出力
if ($firstKey !== null) {
    echo "最初のキー: " . $firstKey . PHP_EOL; // 出力: 最初のキー: a
} else {
    echo "配列が空です。" . PHP_EOL;
}

// 空の配列の場合
$emptyArray = [];
$firstKeyEmpty = array_key_first($emptyArray);

if ($firstKeyEmpty === null) {
    echo "空の配列の最初のキー: null" . PHP_EOL; // 出力: 空の配列の最初のキー: null
}
?>

PHP 8 の array_key_first 関数は、配列の最初のキーを取得するために使用します。この関数は、連想配列(キーと値のペアを持つ配列)の最初のキーを返します。引数には、キーを取得したい配列 $array を指定します。

サンプルコードでは、まず連想配列 $array を定義し、array_key_first 関数を使って最初のキーを取得しています。取得したキーは $firstKey 変数に格納され、echo 文で出力されます。

array_key_first 関数は、配列が空の場合、null を返します。サンプルコードでは、空の配列 $emptyArray を定義し、array_key_first 関数を適用した場合の結果も確認しています。null が返された場合は、配列が空であることを示すメッセージを出力します。

array_key_first 関数の戻り値は、キーが存在する場合は文字列型または整数型となり、配列が空の場合は null となります。この関数を使用することで、配列の最初の要素に簡単にアクセスしたり、配列の状態を確認したりすることができます。システムエンジニアを目指す上で、配列操作は非常に重要なスキルですので、ぜひこの機会に array_key_first 関数の使い方をマスターしてください。

array_key_first()関数は、連想配列の最初のキーを取得する際に役立ちます。引数には配列を渡します。この関数はPHP 7.3.0以降で使用可能です。もしそれ以前のバージョンを利用している場合は、代替手段を検討する必要があります。

注意点として、配列が空の場合、この関数はnullを返します。返り値がnullかどうかをチェックすることで、配列が空であるかを判断できます。サンプルコードのように、!== nullを使って厳密に比較することが推奨されます。また、キーは文字列型または整数型で返されます。もしキーが存在しない場合はnullが返ることに注意してください。

PHPで配列の最初のキーを先頭に移動する

<?php

/**
 * 配列の最初のキーを取得し、そのキーを配列の最初に移動する関数。
 *
 * @param array $array 対象の配列
 * @return array キーを移動した配列
 */
function moveArrayKeyToFirst(array $array): array
{
    if (empty($array)) {
        return $array; // 空の配列の場合はそのまま返す
    }

    $firstKey = array_key_first($array);
    $firstValue = $array[$firstKey];
    unset($array[$firstKey]);

    $newArray = [$firstKey => $firstValue] + $array;

    return $newArray;
}

// 使用例
$myArray = [
    'b' => 'banana',
    'a' => 'apple',
    'c' => 'cherry'
];

$newArray = moveArrayKeyToFirst($myArray);

print_r($newArray);

// 出力結果:
// Array
// (
//     [a] => apple
//     [b] => banana
//     [c] => cherry
// )

このサンプルコードは、PHPのarray_key_first関数を利用して、配列の最初のキーを取得し、そのキーと値を配列の先頭に移動させる関数moveArrayKeyToFirstを定義しています。

moveArrayKeyToFirst関数は、引数として配列 $array を受け取ります。この関数は、配列が空の場合はそのまま配列を返します。空でない場合、まずarray_key_first($array)を使って配列の最初のキーを取得し、$firstKeyに格納します。次に、取得したキーに対応する値を $firstValue に格納します。その後、unset($array[$firstKey])で元の配列から最初のキーを削除します。

そして、[$firstKey => $firstValue] + $array のように、配列の結合演算子 + を使用して、先頭のキーと値を格納した配列と、残りの要素を含む配列を結合することで、キーを先頭に移動させた新しい配列 $newArray を作成します。最後に、この新しい配列 $newArray を返します。

使用例では、キーが 'b', 'a', 'c' の順になっている配列 $myArray を関数に渡しています。関数を実行すると、キー 'a' が先頭に移動し、出力結果はキー 'a', 'b', 'c' の順になります。print_r($newArray) によって、結果が配列の形式で出力されます。array_key_first関数は、配列の最初のキーを文字列または整数で返し、配列が空の場合はnullを返します。このサンプルコードでは、配列のキーを操作することで、配列の要素の順番を制御する方法を示しています。

array_key_first関数はPHP 7.3.0以降で使用可能です。これより前のバージョンでは動作しません。サンプルコードでは、最初にキーを取得し、値を一時的に保持してから配列から削除しています。その後、新しい配列を作成し、先頭に移動したキーと値を設定しています。+演算子を使って配列を結合することで、キーの順番を維持しています。空の配列が入力された場合は、そのまま返すようにすることで、エラーを回避しています。キーが整数または文字列であることを想定しています。オブジェクトをキーとして使用している場合は、予期せぬ動作をする可能性があります。キーの移動は、配列の順番が重要な場合にのみ使用するようにしてください。

【PHP8.x】array_key_first関数の使い方 | いっしー@Webエンジニア