配列内の値の正確な数値位置を取得したい
配列値:
$val = array('banana' , 'second' , 'apple');
ユーザーが値appleを検索したとき
表示されます
3
3番目の要素だから
ユーザーがバナナを検索すると
表示されます
1
array_search()
次のように 使用します。
$num = array_search('banana', $array) + 1;
$keys= array_keys($val, "apple")
値が 2 の配列を返します (値が「apple」である配列のすべてのインデックス)。
次に、その配列の最初の要素を取得して 1 を追加するだけです。
$numericPosition = current($keys)
$keys が空の場合、つまり配列に "apple" が存在しない場合、$numericPosition === false、それ以外の場合は 1 を追加します。これにより、current($キー) 配列にない値はすべて位置 1 になります。
編集: 他の回答の array_search は、指定された値の最初のキーのみを返すため、必要に応じて一致する可能性があります。1 を追加する前に false を確認してください。
配列を調べてチェックする以外に(他の回答が示唆するものとは逆に)方法はありません。他のソリューションは、配列の特定の形状 (値またはキー) によってはハックになります。
$search = "banana";
$index = 1;
foreach ($val as $v) {
if ($v === $search) break;
$index++;
}
echo "$search is number: $index ";
$word = 'banana';
$position = array_search($word, $val) + 1;