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

时间:2012-11-21 09:26:11

标签: php arrays multidimensional-array

我有以下数组:

$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

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

提前致谢!

8 个答案:

答案 0 :(得分:6)

print_r(array_keys($extensions));

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

如果您只想输出1个

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

答案 3 :(得分:0)

使用array_keys会抓住所有密钥。

例如,

 
  $array = array_keys($extensions);
 

然后你可以简单地调用

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

答案 4 :(得分:0)

只有在未知的情况下才能回显密钥。如果您知道密钥,就像您在问题中描述的那样:“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 :(得分:0)

我认为你真正想要的是key($extensions),问题是你不能用key()选择数组位置,所以你必须使用循环或将所有键分配到一个新数组像其他解决方案一样。

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

答案 6 :(得分:0)

如果它可以帮助其他人,你也可以将其“速记”为类似:

echo array_keys($extensions)[0];

答案 7 :(得分:0)

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

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