PHP数组:如何获取元素所在的索引

时间:2012-09-24 08:43:21

标签: php arrays multidimensional-array indexing

以下是以下数组:

Array
(
    [1] => Array
        (
            [0] => 10
            [1] => 13
        )

    [2] => Array
        (
            [0] => 8
            [1] => 22
        )

    [3] => Array
        (
            [0] => 17
            [1] => 14
        )
)

然后我

$chosenNumber = 17

我需要知道的是:

首先)如果17在数组中

第二个)它拥有的密钥(在本例中为[0])

第三)它所属的索引(在这种情况下为[3])

我打算使用in_array函数来解决第一步,但它似乎只适用于字符串..

非常感谢!

5 个答案:

答案 0 :(得分:3)

function arraySearch($array, $searchFor) {
    foreach($array as $key => $value) {
        foreach($value as $key1 => $value1) {
            if($value1 == $searchFor) {
                return array("index" => $key, "key" => $key1);
            }
        }
    }

    return false;
}

print_r(arraySearch($your_array, 17));

答案 1 :(得分:1)

你应该看看这些:

in_array()
array_search()

答案 2 :(得分:0)

您已使用array_search函数

$qkey=array_search(value,array);

答案 3 :(得分:0)

您使用array_search

$index = array_search($chosenNumber, $myArray);
if($index){
    $element = $myArray[$index];
}else{
    // element not found
}

如果找不到元素,array_search将返回false,否则为您要查找的元素的索引。

如果值在数组中多次,则只返回第一个匹配项的键。如果您需要所有匹配项,则需要使用array_keys并指定可选的search_value参数:

$indexes = array_keys($myArray, $chosenNumber);

这将返回包含搜索值的所有索引的(可能为空)数组。

答案 4 :(得分:0)

array_keys()

  • 返回所有键或数组键的子集

array_values()

  • 返回数组的所有值

array_key_exists()

  • 检查数组中是否存在给定的键或索引

in_array()

  • 检查数组中是否存在值

您可以在http://www.php.net/manual/en/function.array-search.php

找到更多信息