PHP プログラミングでは、配列は最も一般的なデータ構造の 1 つです。配列内で特定の値が出現する位置を見つける必要がある場合、次の問題に遭遇することがあります: 配列内の値の位置を知るにはどうすればよいですか?値が配列に存在するかどうかを確認するにはどうすればよいですか?
この記事では、上記の問題について詳しく説明し、解決策を提供します。
1. 配列内に特定の値が存在するかどうかを判断する
in_array 関数を使用して、配列内に値が存在するかどうかを判断できます。この関数は、配列内で指定された値を検索し、ブール値 (True または False) を返します。 True が返された場合は、値が配列内に存在することを意味し、False が返された場合は、値が配列内に存在しないことを意味します。
以下はサンプル コードです:
$my_array = array('apple', 'orange', 'banana'); if (in_array('apple', $my_array)) { echo "存在"; } else { echo "不存在"; }
上記のコードは、$my_array 配列に "apple" 文字列が含まれているかどうかを確認します。存在する場合は「存在する」を出力し、存在しない場合は「存在しない」を出力します。
2. 配列内の値の位置を見つける
配列内の値の位置を取得する必要がある場合は、array_search 関数を使用してそれを実現できます。この関数は、配列内の指定された値を検索し、配列内の値のキー名を返します (キー名は値の位置です)。値が見つからない場合は、False が返されます。
以下はサンプル コードです:
$my_array = array('apple', 'orange', 'banana'); $position = array_search('apple', $my_array); if ($position !== False) { echo "该数值在数组中的位置为:" . $position; } else { echo "该数值不存在于数组中"; }
上記のコードは、$my_array 配列内の "apple" 文字列の位置を取得します。存在する場合は配列内の値の位置を出力し、存在しない場合は「配列に値が存在しません」と出力します。
$array_search関数の戻り値が0の場合(配列の先頭に値がある場合)、関数内ではFalseと判定されるので注意してください。したがって、$position !== False のようなステートメントを使用して、$array_search 関数の戻り値を決定する必要があります。
3. 配列内で特定の値が出現するすべての位置を検索する
配列内で特定の値が出現するすべての位置を検索する必要がある場合は、while ループを以下と組み合わせて使用できます。これを実現するには array_search 関数を使用します。具体的なコードは次のとおりです。
$my_array = array('apple', 'orange', 'banana', 'apple', 'orange', 'apple'); $search_value = 'apple'; $offset = 0; while (($position = array_search($search_value, $my_array, $offset)) !== False) { echo "该数值在数组中的位置为:" . $position . "<br/>"; $offset = $position + 1; }
上記のコードは、$my_array 配列内の「apple」文字列のすべての位置を検索し、これらの位置を順番に出力します。このうち $offset 変数は検索の開始位置を設定するために使用されます。 $offset が設定されていない場合、array_search 関数は配列の最初の要素から検索を開始します。
指定された値が見つからない場合、array_search 関数は False を返すため、!== False を使用して戻り値を決定する必要があることに注意してください。
4. 配列内のどの位置に値があるかを判断する
配列内の特定の値の順位 (つまり、配列内の値の位置) を知る必要がある場合これは、array_flip 関数と array_keys 関数を使用して実現できます。具体的なコードは次のとおりです。
$my_array = array('apple', 'orange', 'banana', 'apple', 'orange', 'apple'); $search_value = 'orange'; $keys = array_keys(array_flip($my_array)); $position = array_search($search_value, $keys); if ($position !== False) { echo "该数值在数组中的排名为:" . ($position + 1); } else { echo "该数值不存在于数组中"; }
上記のコードは、まず array_flip 関数を使用して配列内のすべてのキー値を交換します (つまり、値をキーに、キーを値に変更します)。次に、array_keys 関数を使用してすべてのキー名 (つまり、すべての値) を取得します。次に、array_search 関数を使用して、配列内の指定された値の位置を見つけます。最後に、この位置に 1 を加算すると、配列内の値のランキングが決まります。
上記は、PHP で配列に特定の値が存在するかどうかを判断する方法と、配列内の値の位置を見つける方法です。実際の開発では、最高のパフォーマンスと効率を達成するために最も適切な方法を選択する必要があることに注意してください。
以上がphp配列は存在しますか?数値は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。