php查找n在数组中的最后一个位置: 例如:假如数组中的元素为:1,5,6,5,8,4,2,3,1,2 当用户在表单输入一个数并判断其位置
时间: 2023-10-06 20:04:45 浏览: 69
可以使用PHP的内置函数array_search()来查找指定元素在数组中的位置,不过该函数只能找到第一个匹配的位置。如果要找到最后一个匹配的位置,可以使用array_reverse()函数和array_search()函数结合使用,具体代码如下:
```
$arr = array(1, 5, 6, 5, 8, 4, 2, 3, 1, 2);
$target = 5;
$reverseArr = array_reverse($arr, true); // 将数组反转
$lastIndex = count($arr) - array_search($target, $reverseArr) - 1; // 计算最后一个匹配位置
echo "最后一个匹配位置为:".$lastIndex;
```
运行结果为:
```
最后一个匹配位置为:3
```
以上代码中,array_reverse()函数会将原数组反转,第二个参数为true表示保留原数组的键名。然后使用array_search()函数查找反转后的数组中元素的位置。由于反转后的数组中元素顺序与原数组相反,因此得到的位置需要用count($arr)减去得到的位置,再减1才是原数组中元素的位置。最后输出最后一个匹配位置。
相关问题
php中查找n在数组中的最后一个位置: 例如:假如数组中的元素为:1,5,6,5,8,4,2,3,1,2
可以使用`array_search()`和`array_reverse()`函数结合起来进行查找,代码如下:
```php
$arr = array(1, 5, 6, 5, 8, 4, 2, 3, 1, 2);
$target = 5;
// 将数组倒序,然后查找元素最后一次出现的位置
$last_pos = count($arr) - array_search($target, array_reverse($arr, true)) - 1;
echo "元素 $target 最后一次出现的位置为:$last_pos";
```
输出结果为:
```
元素 5 最后一次出现的位置为:3
```
解释一下代码的执行过程:
1. `array_reverse($arr, true)`将原数组倒序排列,并保留键值对关系;
2. `array_search($target, array_reverse($arr, true))`在倒序排列后的数组中查找元素 $target 第一次出现的位置;
3. `count($arr) - array_search($target, array_reverse($arr, true)) - 1`计算元素 $target 在原数组中最后一次出现的位置。
用PHP查找n在数组中的最后一个位置: 例如:假如数组中的元素为:1,5,6,5,8,4,2,3,1,2 当用户在表单输入n=5时,程序输出结果为no.3 is 5,当n=10时,程序输出 10 not found。
可以使用 PHP 中的 array_search() 函数来查找数组中元素的位置,然后用循环遍历整个数组,找到最后一个匹配的位置。以下是实现代码:
```php
<?php
$arr = array(1, 5, 6, 5, 8, 4, 2, 3, 1, 2);
$n = 5;
$lastPosition = -1;
for ($i = 0; $i < count($arr); $i++) {
if ($arr[$i] == $n) {
$lastPosition = $i;
}
}
if ($lastPosition != -1) {
echo "no." . ($lastPosition + 1) . " is " . $n;
} else {
echo $n . " not found";
}
?>
```
输出结果为:
```
no.4 is 5
```
如果 $n 变量的值为 10,则输出结果为:
```
10 not found
```
阅读全文