配列があるとします。
$array = [
0 => 'りんご',
1 => 'バナナ',
3 => 'タンジェリン',
5 => 'グレープ'
];
配列のキーが0、1、3、および5であり、中央に切断があることがわかります。値は正常ですが、この配列を繰り返すと、重要な値に依存する場合、予期しない結果が生成される場合があります。
array_values関数の関数は、配列内のすべての値を返し、これらの値を再インドすることです。キー名は0から増加し、配列のキーが連続していることを確認します。
構文例:
array_values(array $array): array
戻り値は、元の配列のすべての値を含む新しい配列ですが、キー名は再インネックスされています。
上記の不連続なキー配列については、 array_valuesを使用して処理します。
<?php
$array = [
0 => 'りんご',
1 => 'バナナ',
3 => 'タンジェリン',
5 => 'グレープ'
];
$cleanArray = array_values($array);
print_r($cleanArray);
出力結果:
Array
(
[0] => りんご
[1] => バナナ
[2] => タンジェリン
[3] => グレープ
)
array_valuesを介して、Arrayキーを連続して0、1、2、および3に変更します。
一部の操作を介して配列の中央の要素を削除する場合、キー名は継続的ではありません。
アレイのインデックストラバーサル(ループなど)を実行する必要があり、連続数値キーの方が便利です。
連続数値キーを必要とする関数またはインターフェイスに配列を渡します。
ユーザー入力またはプロセスデータベースのクエリによって返される非連続配列をクリーニングする必要があります。
インターフェイスまたはデータベースクエリを介して次の配列を返す場合(たとえば、json_decodeで得られた結果):
<?php
$apiResponse = [
2 => 'Tom',
4 => 'Jerry',
7 => 'Spike'
];
直接処理できる配列に変える必要があります。
$cleaned = array_values($apiResponse);
foreach ($cleaned as $key => $name) {
echo "シリアルナンバー {$key},名前:{$name}" . PHP_EOL;
}
出力:
シリアルナンバー 0,名前:Tom
シリアルナンバー 1,名前:Jerry
シリアルナンバー 2,名前:Spike
array_valuesは、PHPで配列インデックスを再構築する簡単で効率的な方法です。
キー名が連続していない、または削除された後にリセットする必要がある配列に適用できます。
アレイに再インドを変更した後、多くの横断的および論理的な判断の複雑さを回避できます。
より多くのPHPスキルを知りたい場合は、ご覧ください。
<a href="https://gitbox.net/php-array-functions">PHP配列関数</a>