開発中、配列操作は一般的なタスクの1つです。 PHPは、 Array_count_values()が非常に実用的な関数であるアレイを操作するための多くの組み込み関数を提供します。その機能は、配列内のすべての値の発生数をカウントし、結果を連想配列として返すことです。ただし、この操作をカスタム機能にカプセル化して、プロジェクトで再利用し、開発プロセスを簡素化する場合があります。
この記事では、コードの再利用性を向上させるカスタム関数を作成し、コードのシンプルさと保守性を改善することにより、 array_count_values()をカプセル化する方法を示します。
array_count_values()は、配列内のすべての値の発生数をカウントできるPHPの組み込み関数です。キーが配列に表示される値であり、値はその値の発生数である関連配列を返します。
$array = ["apple", "banana", "apple", "orange", "banana", "apple"];
$count = array_count_values($array);
print_r($count);
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
上記の例から、 array_count_values()が配列要素の頻度を簡単にカウントできることがわかります。
array_count_values()は非常に便利な内蔵機能ですが、さらにカプセル化して、より汎用性の高い拡張可能なカスタム関数を作成できます。これにより、必要に応じて再利用し、関数ロジックを中央に管理できます。
アレイを引数として使用するカスタム関数countValuesを作成し、配列の各値の発生をカウントして結果を返すようにarray_count_values()を呼び出します。
/**
* 統計配列内の各値の発生数
*
* @param array $inputArray 入力配列
* @return array 統計結果の連想配列を返します
*/
function countValues(array $inputArray): array {
// 使用 array_count_values カウントします
return array_count_values($inputArray);
}
$array = ["apple", "banana", "apple", "orange", "banana", "apple"];
$result = countValues($array);
print_r($result);
Array
(
[apple] => 3
[banana] => 2
[orange] => 1
)
カプセル化により、このコードをより明確に管理および再利用できます。また、将来このロジックを拡張する必要がある場合(ケース感度の制御を追加したり、特定の特定の値をフィルタリングするなど)、 CountValues()関数を変更するだけです。
機能をカプセル化することの最大の利点は、コードの再利用性を改善することです。プロジェクトの同様の統計をどこで行う必要があるとしても、 countValues()関数を呼び出すだけで、毎回array_count_values()コードコードを書く必要はありません。このようにして、コードはよりモジュール化され、管理しやすくなります。
開発中、同様のタスクに遭遇することがよくあります。配列内の特定の値の発生数をカウントします。 array_count_values()をカプセル化することにより、基礎となる実装の詳細に毎回注意を払うことなく、開発中にCountValues()を直接呼び出すことができます。これにより、開発効率が向上するだけでなく、コードをより読みやすくします。
カプセル化された関数に新しい要件または変更がある場合、1つの場所を変更する必要があります(つまり、 countValues()関数自体)。これにより、コードの維持が容易になり、ニーズに応じて柔軟に調整できます。たとえば、統計またはフィルター値中に特定の特定の値を無視する場合、カプセル化された関数を簡単に拡張できます。
カプセル化のスケーラビリティをよりよく実証するには、値をカウントするときに特定の特定の値をフィルタリングする必要があるとします。 countValues()関数を変更し、オプションのフィルタリングパラメーターを追加できます。
/**
* 統計配列内の各値の発生数,指定された値を除外します
*
* @param array $inputArray 入力配列
* @param array $excludeValues 除外する必要がある値
* @return array 統計結果の連想配列を返します
*/
function countValues(array $inputArray, array $excludeValues = []): array {
// 不要な値を除外します
$filteredArray = array_diff($inputArray, $excludeValues);
// 使用 array_count_values カウントします
return array_count_values($filteredArray);
}
$array = ["apple", "banana", "apple", "orange", "banana", "apple"];
$exclude = ["banana"]; // 除外します 'banana'
$result = countValues($array, $exclude);
print_r($result);
Array
(
[apple] => 3
[orange] => 1
)
拡張機能を通じて、呼び出し時に特定の値を選択的に除外し、関数をより柔軟で実用的にすることができます。
カスタム関数Encapsulation array_count_values()を作成することにより、より効率的で簡潔で保守可能なコードを実現できます。カプセル化は、コードの再利用性を改善するだけでなく、開発プロセスを簡素化し、コードロジックをより明確にします。基本的な統計関数にある場合でも、より多くの関数を拡張する必要がある場合でも、カプセル化された関数を柔軟に応答し、開発効率を改善できます。
この記事が、組み込み機能をカプセル化することにより、開発プロセスを簡素化し、コードの保守性と再利用性を効果的に改善する方法を理解するのに役立つことを願っています。