PHP-배열 값의 키 이름 가져 오기


157

다음과 같은 배열이 있습니다.

function example() {
    /* some stuff here that pushes items with
        dynamically created key strings into an array */

    return array( // now lets pretend it returns the created array
        'firstStringName' => $whatEver,
        'secondStringName' => $somethingElse
    );
}

$arr = example();

// now I know that $arr contains $arr['firstStringName'];

색인을 $arr['firstStringName']통해 array_keys($arr)키 문자열 을 반복하여 반환 할 수 있도록 색인을 찾아야합니다 'firstStringName'. 어떻게해야합니까?


달성하려는 유스 케이스를 자세히 설명 할 수 있습니까?
nikc.org

답변:


332

값이 있고 키를 찾으려면 array_search()다음과 같이 사용 하십시오.

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$key이제 값의 키 'a'(즉, 'first')가 포함됩니다.


21
array_filter()키를 유지하므로 일치하는 첫 번째 결과 대신 모든 일치하는 결과를 반환해야하는 경우 사용할 수 있습니다.
Mike Lyons

5
내가 주목할만한 가치가있는 것 :이 솔루션은 배열 (sort ($ arr)) 정렬이 키 이름을 제거하고 기본 0,1,2 등의 색인 값에 의존한다는 것을 알기 전까지는 나를 위해 작동하지 않았습니다. 따라서 정렬하는 경우 asort (asort ($ arr))를 사용하십시오. 이것은 키 값을 유지합니다. php.net/manual/en/function.asort.php
Rich701



18

이름이 역동적이라면

$arr[$key]

이는 $ key에 키 값이 포함되어 있음을 의미합니다.

array_keys()배열의 모든 키를 얻는 데 사용할 수 있습니다.

$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);

너에게 줄거야

$x = array(0 => 'a', 1 => 'c');

16

그렇습니다. 실제로 PHP는 그러한 지원을 제공하는 몇 안되는 언어 중 하나입니다.

foreach($arr as $key=>$value)
{

}

이 코딩 덜 .. 효과가 소모 검색 및 시간에 따라 관련 답변을하지 않습니다
Rishab

13

같은 값으로 배열 요소를 반환 해야하는 경우 array_keys()함수를 사용하십시오.

$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));

11

다른 옵션이 있습니다

$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one']; 


4

PHP의 키 기능을 사용하여 키 이름을 얻을 수 있습니다.

<?php
    $array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

    // this cycle echoes all associative array
    // key where value equals "apple"
    while ($fruit_name = current($array)) {
      if ($fruit_name == 'apple') {
        echo key($array).'<br />';
      }
    next($array);
     }
?>

여기처럼 : PHP : key-Manual

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.