如何使用php获取数组的数字位置


how to get the numeric position of the array using php

我想获得数组中值的精确数字位置

数组值:

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

当用户搜索apple

它将显示

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。这确保了当一个值不存在时,您可以真正检测到,如果您只将1添加到当前($keys)中,则任何不在数组中的值都将位于位置1。

编辑:array_search的另一个答案将只返回给定值的第1个键,因此它可能更符合您的需求,只需确保在添加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;