簡體   English   中英

PHP查找關聯多維數組的最后一個鍵

[英]PHP Find last key of associative multidimensional array

這是我嘗試過的:

foreach ($multiarr as $arr) {
   foreach ($arr as $key=>$val) {
      if (next($arr) === false) {
         //work on last key
      } else {
         //work
      }
   }
}

再看看之后,我認為next在這里使用錯了,但我不知道該怎么做。

是否有可能看到我是否在這個數組的最后一次迭代?

$lastkey = array_pop(array_keys($arr));
$lastvalue = $arr[$lastkey];

如果你想在循環中使用它,只需將$lastkey$key進行比較

您需要保留迭代次數,並根據迭代的數組長度進行檢查。 PHP中的默認Iterator實現不允許您檢查下一個元素是否有效 - next有一個void返回,api只公開一個方法來檢查當前位置是否有效。 http://php.net/manual/en/class.iterator.php 要實現您正在考慮的功能,您必須使用peek()或nextIsValid()方法實現自己的迭代器。

嘗試這個:

foreach ($multiarr as $arr) {
   $cnt=count($arr);
   foreach ($arr as $key=>$val) {
      if (!--$cnt) {
         //work on last key
      } else {
         //work
      }
   }
}

請參閱下面的網址,我認為它對您有所幫助: -

如何獲取數組中的最后一個鍵?

如何獲取數組中的最后一個鍵?

更新:

<?php

$array = array(
    array(
    'first' => 123,
    'second' => 456,
    'last' => 789),
    array(
    'first' => 123,
    'second' => 456,
    'last_one' => 789),
);


foreach ($array as $arr) {

    end($arr);         // move the internal pointer to the end of the array
    $key = key($arr);  // fetches the key of the element pointed to by the internal pointer
    var_dump($key);

}

輸出:

string(4) "last" string(4) "last_one" 

這個函數(理論上,我還沒有測試過)將返回多維關聯數組中的最后一個和最深的鍵。 給我一個跑,我想你會喜歡它。

function recursiveEndOfArrayFinder($multiarr){

    $listofkeys = array_keys($multiarr);
    $lastkey = end($listofkeys);
    if(is_array($multiarr[$lastkey])){
        recursiveEndOfArrayFinder($multiarr[$lastkey]);
    }else{
    return $lastkey;
    }
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM