array_flip()とarray_search()を使用して、値からキーへの高速ポジショニングを実現する方法は?
PHPでは、多くの場合、配列で簡単に検索する必要があります。値から対応するキーを見つけたり、値から逆にキーを調べたりする必要がある場合があります。 PHPは、 Array_flip()とarray_search()の2つの非常に有用な機能を提供します。これは、値からキーへの迅速なポジショニングを実現するのに役立ちます。この記事では、これら2つの機能を使用してこのタスクを達成する方法を紹介します。
array_flip()関数は配列内のキーと値を交換し、元の値を配列のキーにし、元のキーが値になります。値を新しいキーとして見つけることができるように、 array_flip()を介して反転できる連想配列があるとします。
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
$flipped = array_flip($array);
print_r($flipped);
?>
出力結果:
Array
(
[1] => apple
[2] => banana
[3] => orange
)
この例では、 array_flip()を元の配列の値をキーに変え、元のキーを値に変えます。
array_search()関数を使用して、配列内の特定の値を見つけ、対応するキーを返すことができます。一致する値が見つかった場合、 array_search()は値のキーを返します。一致する値が見つからない場合、 falseが返されます。
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
$key = array_search(2, $array);
echo "The key for value 2 is: " . $key;
?>
出力結果:
The key for value 2 is: banana
Array_flip()関数を使用してArrayの値とキーを交換し、次にarray_search()を使用することにより、値に対応するキーをすばやく見つけることができます。
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
// 最初に配列を反転させます
$flipped = array_flip($array);
// 使用 array_search() 値に対応するキーを見つけます
$key = array_search(2, $flipped);
echo "The original key for value 2 is: " . $key;
?>
出力結果:
The original key for value 2 is: banana
Array_flip()をすべての値をキーとして保存するため、この方法はより効率的です。したがって、キーを直接検索することで迅速に見つけることができます。対照的に、 array_search()を使用して元の配列内の値のキーを見つける場合、各検索では配列全体を繰り返す必要があります。配列を反転させることにより、検索プロセスが非常に効率的になります。
この方法は、迅速な検索のために値からキーまで頻繁に検索する必要があるシナリオに適しています。たとえば、ユーザー名と対応するユーザーIDを含むユーザー情報の配列があり、 array_flip()とarray_search()の組み合わせを使用してユーザーIDに基づいてユーザー名を取得することが多い場合、効率を大幅に改善できます。
<?php
$userIDs = [
'John' => 1001,
'Jane' => 1002,
'Tom' => 1003
];
// 意思 ID 鍵として
$flippedUserIDs = array_flip($userIDs);
// ユーザーを見つけますIDのために1002ユーザー名
$username = array_search(1002, $flippedUserIDs);
echo "The username for userID 1002 is: " . $username;
?>
出力結果:
The username for userID 1002 is: Jane
array_flip()は、値が一意の配列のみを処理できます。 Arrayの値に重複がある場合、 array_flip()は最後の値をキーとしてのみ保持し、以前の値は上書きされます。
array_search()が値を見つけることができない場合、 falseを返すため、使用するときに返品値をチェックすることに注意する必要があります。
この記事が、array_flip()とarray_search()を使用して、値からキーにすばやく見つける方法をよりよく理解するのに役立つことを願っています。さらに質問があるか、さらにサポートが必要な場合は、お気軽にご質問ください!