1

我有一个看起来像这样的 PHP 数组:

$array = Array
(
    [teamA] => Array
    (
        [188555] => 1
    )
    [teamB] => Array
    (
        [188560] => 0
    )
    [status] => Array
    (
        [0] => on
    )
)

在上面的示例中,我可以使用以下代码:

echo $array[teamA][188555];

得到值 1。

现在的问题是,有没有办法以类似的方式获得 188555;

数组中的键 teamA、teamB 和 status 始终相同。此外,teamA 和 teamB 数组始终只保存一个记录。

那么有没有办法只获取数组teamA和teamB的第一个元素的key呢?

4

7 回答 7

5

更简单:

echo key($array['teamA']);

更多信息

于 2013-02-05T11:57:55.823 回答
3
 foreach($array as $key=>$value)
 {
     foreach($value as $k=>$v)
     {
          echo $k;
      }
 }

使用key

echo key($array['teamA']);
于 2013-02-05T11:57:19.767 回答
2
echo array_keys($array['teamA'])[0];

请参阅this官方 PHP 站点的详细信息。

于 2013-02-05T11:57:49.580 回答
2

使用两个 foreach

foreach($array as $key => $value){

    foreach($value as $key1 => $value2){
        echo $key1;
    }
}

这样,您也可以扩展您的应用程序以供将来使用。如果会有更多元素,那么它也不会破坏应用程序。

于 2013-02-05T11:59:32.817 回答
2

您可以使用 array_flip 交换键和值。所以array('12345' => 'foo') 变成了array('foo' => '12345')。

可以在此处研究有关 array_flip 的详细信息。

于 2013-02-05T12:02:30.333 回答
1

我想最简单的方法是使用 array_keys()?

所以你会这样做:

$teamAKey = array_shift(array_keys($array['TeamA'])); 
$teamBKey = array_shift(array_keys($array['TeamB']));

显然,您的方法将取决于您打算执行多少次。有关array_keysarray_shift
的 更多信息。

于 2013-02-05T11:58:46.147 回答
1

我建议使用 list($key, $value) = each($array['teamA']) 因为问题是针对键和值的。但是,如果没有循环,您将无法获得数组的第二个或第三个值。如果您以某种方式更改了它的迭代器,您可能必须先重置数组。

于 2013-02-05T12:12:20.580 回答