PHP - 将多维关联数组的键字符串转换为数字

时间:2012-06-06 18:19:21

标签: php multidimensional-array associative-array key-value

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

$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循环,如果是,它将如何进行?

请注意阵列中没有有限数量的单位和分类。

2 个答案:

答案 0 :(得分: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;
    }
}

没有测试过,但它应该有用。

答案 1 :(得分:0)

您可以使用array_values