3

我有一个像这样的多维关联数组:

$type = Array(
  [unit-1] = Array(
    [taxon-1] = Array(
      [0] = Array(
        [a] = 1,
        [b] = 1,
        [c] = 'string1'
      ),
      [1] = Array(
        [a] = 1,
        [b] = 1,
        [c] = 'string2'
      ),
    ),
    [taxon-2] = Array(
      [0] = Array(
        [a] = 1,
        [b] = 2,
        [c] = 'string3'
      ),
      [1] = Array(
        [a] = 1,
        [b] = 2,
        [c] = 'string4'
      ),
    ),
  [unit-2] = Array(
    [taxon-1] = Array(
      [0] = Array(
        [a] = 2,
        [b] = 1,
        [c] = 'string5'
      ),
      [1] = Array(
        [a] = 2,
        [b] = 1,
        [c] = 'string6'
      ),
    ),
    [taxon-2] = Array(
      [0] = Array(
        [a] = 2,
        [b] = 2,
        [c] = 'string7'
      ),
      [1] = Array(
        [a] = 2,
        [b] = 2,
        [c] = 'string8'
      ),
    ),
  )

如何将所有关联键(unit-1、unit-2... 和 taxon-1、taxon-2...)转换为序数(0、1... 和 0、1...)。我是否需要使用 foreach 循环,如果是,它将如何进行?

请注意,数组中没有有限数量的单位和分类单元。

4

2 回答 2

9

如果肯定有两个级别:

$type = array_values(array_map('array_values', $type));

要重新索引数组中的所有数组键:

function array_reindex($array) {
    if(is_array($array)) {
        return array_map('array_reindex', array_values($array));
    } else {
        return $array;
    }
}

尚未对其进行测试,但它应该可以工作。

于 2012-06-06T18:35:26.033 回答
0

你可以使用array_values它。

于 2012-06-06T18:20:32.170 回答