ホームページ  >  記事  >  バックエンド開発  >  PHP は整数配列の添え字を見つけます

PHP は整数配列の添え字を見つけます

PHPz
PHPzオリジナル
2023-05-19 09:45:36488ブラウズ

PHP では、配列内の要素の添え字を見つけるなど、配列に対していくつかの操作を実行する必要があることがよくあります。配列内の要素がすべて一意である場合は、array_search() 関数を使用して要素のインデックスを見つけることができます。ただし、配列内に同一の要素がある場合、関数は最初に一致した要素のインデックスのみを返すため、誤った結果が返されます。この場合、他のメソッドを使用して配列要素の添え字を見つける必要があります。

以下では、整数配列の添字を見つけるためのいくつかの方法を紹介します。

方法 1: in_array() 関数を使用する

in_array() 関数は、配列内に値が存在するかどうかを確認し、存在する場合は true を返し、存在しない場合は false を返します。もちろん、以下に示すように、この関数を使用して配列内の要素の添字を見つけることもできます。

$array = array(1, 2, 3, 4, 5);
$key = array_search(3, $array);
if ($key !== false) {
    echo "3 的下标是:$key";
} else {
    echo "数组中不存在 3";
}

出力結果:

3 的下标是:2

ただし、このメソッドは、配列内の要素にのみ適用されます。配列 唯一のケースは、配列内に重複した要素がある場合であり、要素の添字を正確に取得できません。

方法 2: array_keys() 関数を使用する

array_keys() 関数は、配列内のすべてのキー名を返すことができます。つまり、配列の添字リストを返すことができます。以下に示すように、この関数を使用して、整数配列内の要素のすべての添字を検索できます。

$array = array(1, 2, 3, 3, 4, 5);
$keys = array_keys($array, 3);
if (!empty($keys)) {
    foreach ($keys as $key) {
        echo "3 的下标是:$key<br>";
    }
} else {
    echo "数组中不存在 3";
}

出力結果:

3 的下标是:2
3 的下标是:3

このメソッドは、整数配列内の要素を正確に取得できます。要素の添字(繰り返される要素の添字を含む)。ただし、要素が配列内に存在しない場合は、空の配列が返されます。

方法 3: array_flip() 関数と isset() 関数を使用する

array_flip() 関数は、配列内のキーと値を交換し、新しい配列を返すことができます。元の配列に重複した値がある場合、一部のデータが失われます。ただし、配列内の値がすべて一意である場合は、次のように、このメソッドを使用して整数配列内の要素の添え字を見つけることができます。

$array = array(1, 2, 3, 4, 5);
$flipped = array_flip($array);
if (isset($flipped[3])) {
    echo "3 的下标是:" . $flipped[3];
} else {
    echo "数组中不存在 3";
}

出力結果:

3 的下标是:2

この方法は比較的単純ですが、配列内の要素が一意である状況にのみ適しています。配列内に同一の要素がある場合、正しい添字を取得できません。

方法 4: コールバック関数と array_filter() 関数を使用する

array_filter() 関数は、指定された条件に従って配列要素をフィルターし、条件を満たす配列要素を返すことができます。以下に示すように、この関数をカスタム コールバック関数と組み合わせて使用​​すると、整数配列内の要素の添え字を見つけることができます。

$array = array(1, 2, 3, 3, 4, 5);
$index = null;
array_filter($array, function($key, $value) use (&$index) {
    if ($value == 3 && is_null($index)) {
        $index = $key;
    }
}, ARRAY_FILTER_USE_BOTH);
if (!is_null($index)) {
    echo "3 的下标是:$index";
} else {
    echo "数组中不存在 3";
}

出力結果:

3 的下标是:2

このメソッドは正確な Get を実現できます。整数配列内の要素の最初の添字 (繰り返される要素の添字を含む)。ただし、カスタム コールバック関数が必要なため、コードはより複雑になります。

まとめ

整数配列の添字を求める問題は、配列の内容や用途に応じて適切な方法を選択して解くことができます。シナリオ。配列内の要素がすべて一意である場合、array_search() 関数または array_flip() 関数を使用して要素の添え字を見つけることができます。配列内に重複した要素がある場合は、array_keys() 関数または array_filter() 関数をカスタム コールバック関数と組み合わせて使用​​して、要素の添え字を見つけることができます。

以上がPHP は整数配列の添え字を見つけますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。