配列内で最も高いキー/インデックスを検索します


92

PHPで配列内の最高のキー/インデックスを取得するにはどうすればよいですか?私はそれを値に対して行う方法を知っています。

たとえば、この配列から整数値として「10」を取得します。

$arr = array( 1 => "A", 10 => "B", 5 => "C" );

どうすればプログラムできるのかはわかっていますが、そのための機能もあるのかと考えていました。

回答:


205

これはうまくいくはずです

$arr = array( 1 => "A", 10 => "B", 5 => "C" );
max(array_keys($arr));

1つのキーが次のように設定されている場合にも機能するかどうかを知っていますか:$ arr = array(1 => "A"、10 => "B"、5 => "C"、 "15" => "D ");
Raffael Luthiger、2011年

2
@Raffael Luthigerがテストして、正しい結果が得られるかどうかを確認してください。
ジョナサン・クーン

1
これは、空の配列の場合を処理しません。PHPマニュアルからmaxIf an empty array is passed, then FALSE will be returned and an E_WARNING error will be emitted.
Siphon


2
$keys = array_keys($arr);
$keys = rsort($keys);

print $keys[0];

「10」を印刷する必要があります


2

私は、配列で次に利用可能なキー、つまり最上位の+1を取得する必要がある状況にありました。

たとえば、配列が$ data = ['1' => 'something、'34' => 'something other']の場合、35を計算して、どのキーよりも高いキーを持つ配列に新しい要素を追加する必要がありました。他の。空の配列の場合、次に利用可能なキーとして1が必要でした。

これが機能したソリューションです:

    $highest = 0;
    foreach($data as $idx=>$dummy)
    {
        if($idx > $highest)$highest=$idx;
    }
    $highest++;

空の配列かどうかにかかわらず、すべてのケースで機能します。最高のキー+ 1ではなく最高のキーのみを検索する必要がある場合は、最後の行を削除します。配列が空の場合、値は0になります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.