PHP |数组获取值和键

时间:2013-02-05 11:54:46

标签: php arrays

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

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

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

echo $array[teamA][188555];

获取值1.

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

键teamA,teamB和状态在数组中始终相同。另外,teamA和teamB数组总是只保留一条记录。

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

7 个答案:

答案 0 :(得分:5)

更简单:

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

More info

答案 1 :(得分:3)

 foreach($array as $key=>$value)
 {
     foreach($value as $k=>$v)
     {
          echo $k;
      }
 }

使用key

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

答案 2 :(得分:2)

echo array_keys($array['teamA'])[0];

有关官方PHP站点的详细信息,请参阅this

答案 3 :(得分:2)

使用两个foreach

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

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

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

答案 4 :(得分:2)

您可以使用array_flip来交换密钥和值。所以数组('12345'=>'foo')变成数组('foo'=>'12345')。

可以研究有关array_flip的详细信息here

答案 5 :(得分:1)

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

所以你要这样做:

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

显然,你的方法取决于你打算做多少次 有关array_keysarray_shift的更多信息。

答案 6 :(得分:1)

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