0

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

数组值:

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

当用户搜索apple

它会显示

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。这确保您可以实际检测到值何时不存在,如果您只是将 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 回答