0

配列内の値の正確な数値位置を取得したい

配列値:

$val = array('banana' , 'second' , 'apple');

ユーザーが値appleを検索したとき

表示されます

3

3番目の要素だから

ユーザーがバナナを検索すると

表示されます

1

4

4 に答える 4

3

array_search()次のように 使用します。

$num = array_search('banana', $array) + 1;
于 2013-02-22T15:54:49.753 に答える
2
$keys= array_keys($val, "apple")

値が 2 の配列を返します (値が「apple」である配列のすべてのインデックス)。

次に、その配列の最初の要素を取得して 1 を追加するだけです。

$numericPosition = current($keys)

$keys が空の場合、つまり配列に "apple" が存在しない場合、$numericPosition === false、それ以外の場合は 1 を追加します。これにより、current($キー) 配列にない値はすべて位置 1 になります。

編集: 他の回答の array_search は、指定された値の最初のキーのみを返すため、必要に応じて一致する可能性があります。1 を追加する前に false を確認してください。

于 2013-02-22T15:57:00.530 に答える
1

配列を調べてチェックする以外に(他の回答が示唆するものとは逆に)方法はありません。他のソリューションは、配列の特定の形状 (値またはキー) によってはハックになります。

$search = "banana";

$index = 1;
foreach ($val as $v) {
   if ($v === $search) break;
   $index++;
}

echo "$search is number: $index ";
于 2013-02-22T15:54:58.490 に答える
1
$word = 'banana';
$position = array_search($word, $val) + 1;
于 2013-02-22T15:56:13.527 に答える