2012-09-06 3 views
1

의 마지막 키를 찾습니다.PHP이 내가 시도 무엇 연관 다차원 배열

내가이 배열의 마지막 반복에 있는지 확인할 수 있습니까? 당신은 루프에서 사용하려면

+0

foreach ($ arr)가 어쨌든하고있는 것을 복제하는 것처럼 next()를 수행하면됩니다. 그 때문에 다른 모든 $ 키를 건너 뛸 것입니다. –

답변

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

, 그냥 $lastkey

+0

'오직 변수 만 참조로 전달해야하기 때문에'PHP 엄격 표준에서는이 코드가 작동하지 않습니다. – schellingerht

1

$key에 당신은 반복의 수를 유지하고 이상 반복되는 배열의 길이에 대해 그것을 확인해야합니다 비교합니다. PHP의 기본 반복자 구현에서는 다음 요소가 유효한지 여부를 확인할 수 없습니다. 다음은 void 반환 값을 가지며 api는 현재 위치가 유효한지 검사하는 메서드 만 노출합니다. 여기 http://php.net/manual/en/class.iterator.php을 참조하십시오. 생각하고있는 기능을 구현하려면 peek() 또는 nextIsValid() 메서드를 사용하여 고유 한 반복기를 구현해야합니다.

1

이 시도 :

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

이 URL을 아래 참조 난 그것이 당신에게 완전한 도움을 생각한다 : -

어떻게 배열의 마지막 키를 얻으려면?

How to get last key in an array?

업데이트 :

<?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" 
+2

이 질문이 다른 질문과 중복된다고 생각되면 [닫기] 버튼을 사용하여 대답이 아닌 해당 답변에 연결하십시오 –

+0

제 대답을 업데이트 해주세요. –

1

이 기능 (이론, 나는 그것을 테스트하지 않았습니다) 마지막 깊은 키를 반환합니다 다층 연관 배열에서. 나는 도망 가라. 네가 좋아할 것 같아.

function recursiveEndOfArrayFinder($multiarr){ 

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