获取多维数组的子数组中的键的整数值/位置

时间:2013-06-18 04:59:02

标签: php multidimensional-array arrays

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

我的数组很基本,就像这样:

$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可以解决这个问题吗?一如既往的任何帮助都会非常感激!

1 个答案:

答案 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的位置。