【问题标题】:Getting the key of the only element in a PHP array获取 PHP 数组中唯一元素的键
【发布时间】:2011-01-17 06:52:46
【问题描述】:

关联数组的key是动态生成的。如何获取这样一个数组的“Key”?

$arr = array ('dynamic_key' => 'Value');

我知道可以通过这样的 foreach 循环访问它:

foreach ($arr as $key => $val) echo "Key value is $key";

但是,我知道这个数组只有一个键,并且希望避免 foreach 循环。是否可以以任何其他方式访问此元素的值?或者获取密钥名称?

【问题讨论】:

    标签: php associative-array


    【解决方案1】:

    编辑:http://php.net/each 说:

    每个

    警告 自 PHP 7.2.0 起,该函数已被弃用。强烈建议不要依赖此功能。


    使用key() 很好。
    如果您仍然要获取该值,您也可以使用each()list()

    $arr = array ('dynamic_key' => 'Value');
    list($key, $value) = each($arr);
    echo $key, ' -> ', $value, "\n";
    

    打印dynamic_key -> Value

    【讨论】:

    • 一个小错误。最后一行应该是:echo $key. ' -> '. $value. "\n"; 而不是 echo $key, ' -> ', $value, "\n";(点,而不是逗号)。
    • PolGraphic:“最后一行应该是”-不,不应该。无需在那里进行连接。您可以将几乎无限数量的逗号分隔参数传递给 echo。
    • each() 在较新版本的 PHP 中已被弃用,所以...不要依赖它在未来的工作。
    【解决方案2】:

    最短、最简单、最独立的解决方案是:

    $key   = key($arr);
    $value = reset($arr);
    

    【讨论】:

      【解决方案3】:
      $keys = array_keys($arr);
      echo $keys[0];
      

      或者使用array_values() 作为值。

      【讨论】:

        【解决方案4】:

        您可以使用array_shift(array_keys($arr))(使用array_values 获取值),但它仍然在内部进行循环。

        【讨论】:

          【解决方案5】:

          array_keys() 呢?

          虽然它确实返回了一个数组...

          【讨论】:

            【解决方案6】:

            你的意思是你有entry的值,想要拿到key吗?

            array_search ($value, $array) 
            

            如果是则返回针的键 在数组中找到,否则为 FALSE。

            如果在大海捞针中找到更多 不止一次,第一个匹配键是 回来。归还所有人的钥匙 匹配值,使用 array_keys() 可选的 search_value 参数 而是。

            更多细节: http://php.net/manual/en/function.array-search.php

            【讨论】:

              猜你喜欢
              • 2018-06-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-15
              相关资源
              最近更新 更多