2009-08-25 7 views
6

이 다차원 배열에서 첫 번째 키를 검색하고 싶습니다.PHP를 사용하여 다차원 배열의 첫 번째 키 검색

Array 
(
    [User] => Array 
     (
      [id] => 2 
      [firstname] => first 
      [lastname] => last 
      [phone] => 123-1456 
      [email] => 
      [website] => 
      [group_id] => 1 
      [company_id] => 1 
     ) 

) 

이 배열은 $ this-> data에 저장됩니다.

지금은 '사용자'를 검색하는 키 ($ this-> data)를 사용하고 있지만 결과에 도달하는 올바른 방법이 아닌 것 같습니다.

이 검색 결과를 가져 오는 다른 방법이 있습니까?

감사

+0

array_shift()도 잘 할 것입니다. – Wayne

답변

7

그 일을하지만 다른 방법이있다 아무것도로 신속하고 key()를 사용하여 짧게. 다른 용도는 모두 키를 얻는 것입니다. 예를 들어, 이들 모두는 배열의 첫 번째 키를 반환합니다.

두 가지 모두 알기 어렵습니다. 당신이 oneliner을 원하지만, 반복자는 첫 번째 요소에없는 경우에 당신이 실수로 잘못된 키를 얻기에서 자신을 보호하려면

,이 시도 :

reset($this->data); 

reset():

리셋()는 배열의 내부 포인터를 첫 번째 요소로 되감으며 은 첫 번째 배열 요소의 값을 반환합니다.

하지만 당신이하고있는 일은 나에게 잘 들립니다. 한 줄에 원하는 기능을 정확하게 수행하는 기능이 있습니다. 또 뭘 원할 수 있니?

+0

흠 나는 대신 그 방법을 사용할 것이라고 생각합니다. PHP 매뉴얼 키()에 따르면 ""는 key()가 현재 배열 위치의 인덱스 요소를 반환합니다. 따라서 어떤 이유로 든 첫 번째 배열 위치에 있지 않으면 잘못된 키가 반환됩니다. – user103219

+0

고마워, 나는 키()를 고집 할 것이다. – user103219

+1

죄송합니다. 마지막으로 편집을 보았습니다. 편집하는 데 1 ~ 2 분 정도 소요됩니다 ... reset()은 내가 찾고있는 것입니다. 배열이 왜 첫 번째 위치에 있지 않을지 모르겠지만 ID보다는 미안하지만 안전합니다! – user103219

0

사용이 (PHP 5.5 이상) :

echo reset(array_column($this->data, 'id')); 
+0

코드에 대한 설명을 제공해 주시겠습니까? OP 또는 미래의 사용자에게 더 많은 도움이 될 수 있습니다. – Bono

관련 문제