PHPでは、配列は複数の値を保存できるデータ型です。配列がある場合は、3番目の小さな値を見つける必要がある場合があります。これは、すべての要素の中でサイズでソートされた3番目の数字の値です。
最初に配列を並べ替えてから、ソート後に3番目の要素を直接選択できます。
$arr = array(3, 5, 2, 8, 1);
sort($arr);
echo $arr[2]; // 出力2
Arrayに複製要素がある場合は、最初にArray_unique()を使用して、それらを控除してからソートし、最後に3番目の要素を取得できます。
$arr = array(3, 5, 2, 8, 1, 2, 3, 5);
$arr = array_unique($arr);
sort($arr);
echo $arr[2]; // 出力3
array_slice()を介して配列の最初のいくつかのアイテムを取得し、データのこの部分をソートしてから、3番目のアイテムを使用します。
$arr = array(3, 5, 2, 8, 1);
$arr = array_slice($arr, 0, 3);
sort($arr);
echo $arr[2]; // 出力3
カスタム関数を介して、ネストされたループを使用してアレイ要素をソートして、3番目に小さい値を見つけます。
function third_smallest($arr)
{
$n = count($arr);
$temp = 0;
for ($i = 0; $i < $n; $i++) {
for ($j = $i + 1; $j < $n; $j++) {
if ($arr[$j] < $arr[$i]) {
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
}
}
if ($i == 2) {
break;
}
}
return $arr[2];
}
$arr = array(3, 5, 2, 8, 1);
echo third_smallest($arr); // 出力3
上記の方法はすべて、アレイ内の3番目の小さな値を効果的に見つけることができます。ソート後に直接値を取る方法は簡潔で効率的です。重複排除の後、ソートは重複する要素が存在する場合に適していますが、カスタム関数はソートプロセスにより多くの制御ニーズがあるシナリオに適しています。特定のニーズに応じて適切な方法を選択すると、配列データの処理をよりよく完了できます。