我想获得数组中值的确切数字位置
数组值:
$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 加到 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;