2012-05-05 3 views
20

배열에서 키를 검색하고 값을 반환하는 가장 좋은 방법은 무엇입니까 궁금 해서요. array_search와 비슷하지만 키는 있습니다. 루프가 최선의 방법일까요?PHP 검색 배열 키 및 값을 얻을

배열 :

Array([20120425] => 409 [20120426] => 610 [20120427] => 277 
     [20120428] => 114 [20120429] => 32 [20120430] => 304 
     [20120501] => 828 [20120502] => 803 [20120503] => 276 [20120504] => 162) 

값이 내가 검색 오전 : 20120504

답변

50

의 핵심은 이미 ... 흠 ...

echo $array[20120504]; 

하는 경우입니다 당신이 확실하지 않다면, 키가 존재한다면 테스트해라.

,210
$key = 20120504; 
$result = isset($array[$key]) ? $array[$key] : null; 

마이너 또한 :

$result = @$array[$key] ?: null; 

하나는 @ 나쁜 것을, 주장,하지만 심각한을 유지 할 수있다 : 이것은 더 읽기이며, 정직하고, 아닌가요?

업데이트 : 내 앞의 예는 오류 소음없이 가능하다 PHP7으로

다음
$result = $array[$key] ?? null; 
+0

내가 생각하기에 이것에 다른 대답을 할당한다. 이것은 훌륭하게 작동하며 가장 단순합니다. –

+4

'열쇠는 이미 ... 흠 ... 열쇠'입니다 - 이것은 정말로 도움이됩니다 :) 순간의 열기 속에서 분명히 분명히 잊을 수 있습니다. 나에게 시간을 절약 해 주셔서 감사합니다! –

3
array_search('20120504', array_keys($your_array)); 
+0

이것은 키의 인덱스를 알고 싶을 때만 유용합니다 ... – Matthew

+0

@Matthew : OP 상태 : "가치 검색 : 20120504". 그래서 그가 무엇을 찾고 있는지를 안다는 것은 안전한 가정입니다. –

-1

는 비교를 할 수있는 바로 foreach 문에서

$a = array(
    "one" => 1, 
    "two" => 2, 
    "three" => 3, 
    "seventeen" => 17 
); 

foreach ($a as $k => $v) { 
    echo "\$a[$k] => $v.\n"; 
} 

PHP.net

에서 예입니다 각각의 키를 찾고있는 것

+1

비교는 어디 있습니까? –

+0

글쎄, 99 %가 있기 때문에 제공하지 않았지만 foreach 문에있는 코드는 다음과 같습니다. foreach ($ a as $ k => $ v) { if ($ a [$ k] = == '20120504') { echo "\ $ a [$ k] => $ v. \ n"; } }' –

5
<?php 

// Checks if key exists (doesn't care about it's value). 
// @link http://php.net/manual/en/function.array-key-exists.php 
if (array_key_exists(20120504, $search_array)) { 
    echo $search_array[20120504]; 
} 

// Checks against NULL 
// @link http://php.net/manual/en/function.isset.php 
if (isset($search_array[20120504])) { 
    echo $search_array[20120504]; 
} 

// No warning or error if key doesn't exist plus checks for emptiness. 
// @link http://php.net/manual/en/function.empty.php 
if (!empty($search_array[20120504])) { 
    echo $search_array[20120504]; 
} 

?>