是否可以从特定索引值开始查找数组元素中最后一次出现的值。我在这篇文章[How can I find the key of the last occurrence of an item in a multidimensional array?中找到了部分解决方案,但它不允许从特定索引开始。我正在通过匹配“id”的数组进行循环播放。数。如果' id'数字在当前数组索引中不存在,我想从该点搜索找到该值的最后一次出现。
$last = "";
foreach($arr as $key => $array) {
if ( $array['id'] === $id) {
$last = $key;
}
}
echo $last."\n\n";
答案 0 :(得分:1)
如果数组有数字索引,你可以使用通常的循环
$last = false;
for($i = $start; $i >= 0; $i--) { // $start - index to start look up
if ( $arr[$i]['id'] === $id) {
$last = $i;
break; // if key is found, stop loop
}
}
if($last !== false)
echo $last."\n\n";
else
echo "Not found" . "\n";
答案 1 :(得分:0)
<?php
$myArray = [
"bus" => "blue",
"car" => "red",
"shuttle" => "blue",
"bike" => "green";
];
$findValue = "blue";
$startIndex = "bus";
$continue = false;
$lastIndex = null;
foreach ($myArray as $key => $value)
{
if(!$continue && $key === $startIndex)
{
$continue = true;
} else if($continue) {
if($key === $findValue) {
$lastIndex = $key;
}
}
}
基本上我在这里做的只是检查你想要查找的第一个索引的索引,如果找到索引它会继续尝试比较当前密钥&#39 ; s值是您尝试指定的值。