【问题标题】:How to select the first element in a multidimensional array?如何选择多维数组中的第一个元素?
【发布时间】:2012-11-21 09:26:11
【问题描述】:

我有以下数组:

$extensions = array(
    '.info'     => array('whois.afilias.net','NOT FOUND'),  
    '.com'      => array('whois.verisign-grs.com','No match for'),
    '.net'      => array('whois.crsnic.net','No match for'),
    '.co.uk'    => array('whois.nic.uk','No match'),        
    '.nl'       => array('whois.domain-registry.nl','is free'),
);

如何在没有 foreach 循环的情况下回显“.com”或“.co.uk”(不是“.com”或“.co.uk”内的数组,而只是 TLD)。 echo $extensions['.com']; 不起作用,因为它会返回:Array

编辑:我想选择键本身而不是数组编号。这可能吗?

提前致谢!

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:
    print_r(array_keys($extensions));
    

    【讨论】:

    • 这行得通,谢谢。但我不想选择数组编号。因为这可能会不时变化。你有其他解决方案吗?
    • @GuidoVisser:编号不能改变,因为array_keys控制它; 0 永远是第一个键,1 第二个,依此类推。
    【解决方案2】:

    php 5.4
    echo array_keys($extensions)[0];

    php 5.3
    $keys = array_keys($extensions); echo $keys[0];

    【讨论】:

      【解决方案3】:

      如果你只想输出 1 个输出

      $arrext = array_keys($extensions);
      print_r($arrext[0]);
      

      【讨论】:

        【解决方案4】:

        只有在未知密钥时才需要回显密钥。如果您知道密钥,就像您在问题中描述的那样:“echo $extensions['.com'];”您可能最好尝试一下:echo ".com";

        但是如果你不知道它们并且想要输出例如第一个,你可以这样做:

        <?php
        $extensions = array(
            '.info'     => array('whois.afilias.net','NOT FOUND'),
            '.com'      => array('whois.verisign-grs.com','No match for'),
            '.net'      => array('whois.crsnic.net','No match for'),
            '.co.uk'    => array('whois.nic.uk','No match'),
            '.nl'       => array('whois.domain-registry.nl','is free'),
        );
        $keys = array_keys($extensions);
        echo $keys[0]; //will output ".info"
        ?>
        

        【讨论】:

          【解决方案5】:

          使用array_keys 将为您获取所有密钥。

          例如,

          $array = array_keys($extensions);

          然后你可以简单地调用

          print $array[0]; //displays .info echo $array[1]; // displays .com echo $array[2]; // displays .net

          【讨论】:

          • 是的,array_keys 函数仅将原始数组的 keys 作为一维数组返回。因此,您可以使用其索引访问特定元素。完全不涉及循环。
          • 所以,你希望能够通过 $extensions["info"];如果你这样做,它会给你 `array('whois.afilias.net','NOT FOUND')`;如果我们更多地了解需求是什么,我相信我们将能够提供更好的帮助;您也可以考虑取消对所有答案的投票,因为他们以当前形式回答了问题。
          【解决方案6】:

          我认为您真正想要的是key($extensions),问题是您无法使用 key() 选择数组位置,因此您必须使用循环或将所有键分配到一个新数组中,例如其他解决方案。

          移动指针的唯一方法是使用next()prev()reset()end(),这会将指针移动到数组的左/右位置1,或数组的第一个/最后一个元素

          【讨论】:

            【解决方案7】:

            如果它对其他人有帮助,您还可以将其“速记”为:

            echo array_keys($extensions)[0];
            

            【讨论】:

              【解决方案8】:

              您还可以使用 reset() 函数,它返回数组中的第一项(并将其内部指针重置为第一个元素)。

              $keys = array_keys($extensions);
              $first = reset($keys);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-02-01
                • 1970-01-01
                • 1970-01-01
                • 2013-09-21
                • 2021-06-28
                • 1970-01-01
                • 2019-09-30
                相关资源
                最近更新 更多