PHP

2012-08-22 4 views
0

에 배열에서 인덱스의 위치를 ​​찾는 방법은 지금은 특정 인덱스의 위치를 ​​찾으려면 무엇이PHP

Array 
(
[33] => 
[53] => 
[82] => 
[36] => 
[47] => 
[42] => 
[1] => 
[12] => 
[86] => 
[68] => 
[31] => 1.00 
[2] => 1.00 
[87] => 2.00 
[50] => 3.00 
[10] => 3.00 
[55] => 3.00 
[48] => 3.00 
[70] => 3.00 
[90] => 3.00 
[37] => 3.00 
[69] => 3.00 
[8] => 3.00 
[49] => 3.00 
[26] => 3.00 
[13] => 3.00 
[61] => 3.00 
[59] => 3.00 
[73] => 4.00 
[64] => 4.00 
[77] => 4.00 
[78] => 4.00 
[65] => 4.00 
[66] => 4.00 
[63] => 4.00 
[76] => 4.00 
[51] => 4.00 
[52] => 4.00 
[43] => 4.00 
[58] => 4.00 
[60] => 4.00 
[74] => 4.00 
[67] => 4.00 
[35] => 4.00 
[17] => 4.00 
[16] => 4.00 
[18] => 4.00 
[20] => 4.00 
[41] => 4.00 
[15] => 4.00 
[11] => 4.00 
[4] => 4.00 
[5] => 4.00 
[6] => 4.00 
[7] => 4.00 
[83] => 4.00 
[22] => 4.00 
[34] => 4.00 
[38] => 4.00 
[40] => 4.00 
[25] => 4.00 
[32] => 4.00 
[80] => 4.00 
[81] => 4.00 
[27] => 4.00 
[30] => 4.00 
[79] => 5.00 
[89] => 5.00 
[88] => 5.00 
[72] => 5.00 
[71] => 5.00 
[44] => 5.00 
[21] => 5.00 
[23] => 5.00 
[24] => 5.00 
[19] => 5.00 
[14] => 5.00 
[3] => 5.00 
[9] => 5.00 
[28] => 5.00 
[29] => 5.00 
[56] => 5.00 
[57] => 5.00 
[54] => 5.00 
[46] => 5.00 
[39] => 5.00 
[45] => 5.00 
[62] => 5.00 
) 

같은 배열을 가지고있다. 즉 53을 검색하면 위치가 2이됩니다. 나는 53SECOND 위치로 생각하고있다.

+0

배열의 색인이 '0'이므로 '1'을 반환하지 않겠습니까? – alex

+1

'2'와 '53'_anywhere_ 사이에 연관이 없습니다 :? – KingCrunch

답변

5

array_keys()로 키를 가져온 다음 array_search()를 사용하여 인덱스를 가져옵니다.

$keys = array_keys($yourArray); 
$key = array_search('53', $keys); 

테스트했지만 작동해야합니다.

4

당신은 그 값이 배열 값은 만들

$a = array_flip($a); 

를 사용할 수 후에 $ 배열 => 키를

이라고 배열을 얻을 수

$a = array_keys($array) 

을 사용할 수 있습니다 배열의 색인 (원하는 위치에 위치!)

다음

$a["53"];//for example will get what you want 

그것이 도움이되기를 바랍니다

참고 :는 배열을 구축하고 그 후에는 O (1) 액세스 시간을해야하기 때문에 자주 $ 용도 내 방식으로 액세스하는 경우, 하나 또는 두 개의 액세스가 필요하다면 을 사용하여 O (n)을 사용하여 array_keys 배열의 인덱스를 얻는 것이 더 좋습니다.

2
function findIndex($arr, $needle) { 
    $i = 0; 
    foreach ($arr as $key => $value) { 
     if ($key === $needle) { 
     return $i; 
     } 
     $i++; 
    } 
    return false; 
} 
+0

'$ i ++'는'if' 뒤에 있어야합니다. +1 –

+0

이 반환 될 것입니다. @MihaiIorga 네, OP는 처음에는 그가 말한 오타 2를 원합니다. – xdazz