我有多维数组,我正在尝试为第二个数组(子数组)中的键输出一个整数值。
我的数组很基本,就像这样:
$array = array(
array(
'a' => 'd',
'b' => 'e',
'c' => 'f'
),
array(
'a' => 'x',
'b' => 'y',
'c' => 'z'
),
);
所以当我为该阵列创建一个foreach时......
foreach ( $array as $array_key => $sub_array ) {
foreach ( $sub_array as $key => $value ) {
echo $key;
}
}
我在子循环中输出$key
,只返回数组的键值a, b, c - a, b, c
如何实际获取子数组中这些键值的整数值或位置?因此,对于数组中的每个分组,a
将 1 ,b
将 2 ,c
将 3 即可。然后它将重新开始数组中的下一个分组。
我尝试过使用$int++;
,但这适用于数组中的两个组,导致它从1-6开始,而不是1-3,1-3等。
array_keys
可以解决这个问题吗?一如既往的任何帮助都会非常感激!
答案 0 :(得分:3)
试试这段代码。
foreach ( $array as $array_key => $sub_array ) {
$i = 1;
foreach ( $sub_array as $key => $value ) {
echo $i . ' - ' $key . ' ';
$i++;
}
}
这将为您提供预期的结果。
1 - a 2 - b 3 - c 1 - a 2 - b 3 - c
如果你使用下面的代码。
$i = 1;
foreach ( $array as $array_key => $sub_array ) {
foreach ( $sub_array as $key => $value ) {
echo $i . ' - ' $key . ' ';
$i++;
}
}
结果就是这样。
1 - a 2 - b 3 - c 4 - a 5 - b 6 - c
您遇到的输出是什么,而不是您期望的。请注意变量$i
的位置。