我有一个看起来像这样的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的第一个元素的键?
答案 0 :(得分:5)
答案 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_keys和array_shift的更多信息。
答案 6 :(得分:1)
我建议使用list($ key,$ value)= each($ array ['teamA']),因为问题是关键和值。如果没有循环,您将无法获得数组的第二个或第三个值。如果您以某种方式更改了迭代器,则可能必须先重置数组。