PHP从给定索引

时间:2016-05-20 17:52:27

标签: php arrays parsing multidimensional-array

是否可以从特定索引值开始查找数组元素中最后一次出现的值。我在这篇文章[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";

2 个答案:

答案 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值是您尝试指定的值。