0

我有一个多维数组,我试图为第二个数组(子数组)中的键输出一个整数值。

我的数组非常基本,如下所示:

$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将是1b将是2c将是3。然后它将重新开始数组中的下一个分组。

我尝试过使用$int++;,但这适用于数组中的两个组,导致它从 1-6 开始,而不是 1-3、1-3 等。

可以array_keys解决这个问题吗?任何帮助,一如既往,将不胜感激!

4

1 回答 1

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

于 2013-06-18T05:02:53.727 回答