【问题标题】:PHP arrays: How to get the index where an element isPHP数组:如何获取元素所在的索引
【发布时间】:2012-09-15 16:56:25
【问题描述】:

这是以下数组:

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 函数来解决第一步,但它似乎只适用于字符串..

非常感谢!

【问题讨论】:

标签: php arrays multidimensional-array indexing


【解决方案1】:

array_keys()

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

array_values()

  • 返回一个数组的所有值

array_key_exists()

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

in_array()

  • 检查数组中是否存在值

您可以在这里找到更多信息http://www.php.net/manual/en/function.array-search.php

【讨论】:

    【解决方案2】:
    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));
    

    【讨论】:

    • 如果没有匹配,我忘记返回 false。我已经编辑了函数
    【解决方案3】:

    你应该看看使用这些:

    in_array()
    array_search()
    

    【讨论】:

    • 我认为你可以通过在 php 文档中包含这些函数的链接来改进这个答案。
    【解决方案4】:

    你使用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);
    

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

    【讨论】:

      【解决方案5】:

      你使用过array_search函数

      $qkey=array_search(value,array);
      

      【讨论】:

      • 返回false,元素就在那里
      猜你喜欢
      • 2011-04-15
      • 2017-06-03
      • 1970-01-01
      • 2021-08-17
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多