0

私はこのような配列を持っています

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。立場53で考えているので。SECOND

4

4 に答える 4

5

array_keys() でキーを取得してから、 array_search() を試してインデックスを取得してください。

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

テストしていませんが、動作するはずです。

于 2012-08-22T06:14:57.823 に答える
4

あなたが使用することができます

$a = array_keys($array)

値が $array => キーである配列を取得する

その後、使用できます

$a = array_flip($a);

配列の値を配列のインデックスにする(必要な位置!

それから

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

それが役に立てば幸い

注: $a に頻繁にアクセスしている場合は、配列を構築するため、私の方法を使用してください。その後、O(1) アクセス時間が必要になりますarray_searcharray_keysO(n)の配列。

于 2012-08-22T06:14:50.347 に答える
2
function findIndex($arr, $needle) {
    $i = 0;
    foreach ($arr as $key => $value) {
      if ($key === $needle) {
         return $i;
      }
      $i++;
    }
    return false;
}
于 2012-08-22T06:17:32.777 に答える
1

array_keys() 関数を介してすべての配列キーを取得し、目的のキー値を抽出します。http://www.php.net/manual/en/function.array-keys.phpを参照してください

于 2012-08-22T06:16:16.240 に答える