2010-02-16 6 views
9

연관 배열의 키가 동적으로 생성됩니다. 그런 배열의 "키"를 어떻게 얻을 수 있습니까?PHP 배열의 유일한 요소 키 얻기

$arr = array ('dynamic_key' => 'Value'); 

내가 뭔가를이 같은 foreach 루프를 통해 액세스 할 수 있음을 알고있다 : 그러나

foreach ($arr as $key => $val) echo "Key value is $key"; 

, 나는이 배열은 하나의 키를 가지고 있고 foreach 루프를 방지 할 것이라는 점을 알고있다 . 다른 방법으로이 요소의 값에 액세스 할 수 있습니까? 아니면 키 이름을 얻으려고?

답변

13

편집 : http://php.net/each 말한다 :

경고이 기능은 PHP 7.2.0부터 배제되고있다. 이 기능에 의존하는 것은 매우 바람직하지 않습니다. key()를 사용


괜찮습니다.
어쨌든 값을 가져 오려면 each()list()을 사용할 수도 있습니다.

$arr = array ('dynamic_key' => 'Value'); 
list($key, $value) = each($arr); 
echo $key, ' -> ', $value, "\n"; 

인쇄 dynamic_key -> Value 최단

+0

약간의 실수. 마지막 줄은'echo $ key. '->'. $ 값. "echo $ key, '->', $ value,"\ n ";'(점, 쉼없는) 대신에"\ n "; – PolGraphic

+4

PolGraphic : "마지막 줄은"이어야합니다 - 아니요, 안됩니다. 거기에 연결을 할 필요가 없습니다. 거의 무제한의 쉼표로 분리 된 인수를 에코에 전달할 수 있습니다. – VolkerK

+1

'each()'는 최신 버전의 PHP에서는 더 이상 사용되지 않으므로 ... 향후이 작업에 의존하지 마십시오. – Offlein

5
$keys = array_keys($arr); 
echo $keys[0]; 

또는 값으로 array_values()을 사용하십시오.

0

array_shift(array_keys($arr)) (값을 얻기 위해 array_values)을 사용할 수 있지만 내부적으로 루프를 수행합니다.

0

array_keys()는 어떻습니까? 그것은 비록 배열 반환하지

...

0

당신이 항목의 값을 가지고 열쇠를 얻고 싶은 것을 의미합니까? 이 배열에서 발견 , 그렇지 않으면 FALSE 인 경우

array_search ($value, $array) 

바늘의 키를 돌려줍니다.

건초 더미에서 바늘이 발견 된 경우 번보다 두 번째 일치하는 키가 반환됩니다. 이 반환됩니다. 일치하는 값인 의 키를 모두 반환하려면 array_keys()를 (선택 사항) 인 search_value 매개 변수 과 함께 사용하십시오.

자세한 내용 : 이 http://php.net/manual/en/function.array-search.php

2

, 가장 쉽고 독립적 인 솔루션입니다 :

$key = key($arr); 
$value = reset($arr);