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 配列の両方が、常に 1 つのレコードのみを保持します。

では、配列 teamA と teamB の最初の要素のキーだけを取得する方法はありますか?

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を2つ使用する

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']) を使用することをお勧めします。ただし、ループなしでは配列の 2 番目または 3 番目の値を取得することはできません。何らかの方法でイテレータを変更した場合は、最初に配列をリセットする必要がある場合があります。

于 2013-02-05T12:12:20.580 に答える