php 如何选择多维数组中的第一个元素?

q3qa4bjr  于 2023-06-20  发布在  PHP
关注(0)|答案(9)|浏览(162)

我有以下数组:

$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'];不起作用,因为它返回:阵列

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

先谢谢你了!

yr9zkbsy

yr9zkbsy1#

print_r(array_keys($extensions));
f0ofjuux

f0ofjuux2#

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

utugiqy6

utugiqy63#

如果您只想要1个输出

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

wi3ka0sx4#

只有在密钥未知时才需要回显密钥。如果你知道密钥,就像你在问题中描述的那样:“echo $extensions['.com'];“你最好还是试试看“.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"
?>
yyhrrdl8

yyhrrdl85#

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

$array = array_keys($extensions);

然后你可以简单地调用

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

gkl3eglg6#

我认为你真正想要的是key($extensions),问题是你不能用key()来选择数组的位置,所以你必须使用一个循环或者像其他解决方案一样将所有的键分配到一个新的数组中。
移动指针的唯一方法是使用next()prev()reset()end(),这会将指针在数组上向左/向右移动1个位置,或者将指针移动到数组的第一个/最后一个元素

kpbwa7wx

kpbwa7wx7#

如果它帮助了其他人,你也可以“速记”如下:

echo array_keys($extensions)[0];
jgzswidk

jgzswidk8#

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

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

n1bvdmb69#

您可以简单地使用array_key_first(PHP 7 >= 7.3.0,PHP 8)。

$firstExtensionKey = array_key_first( $extensions );
$firstExtension = $extensions[ $firstExtensionKey ];

相关问题