多维度数组中的PHP设置值取决于索引数组

时间:2018-11-16 10:32:45

标签: php

在收集统计数据时,我需要处理索引数量不同的数组。

我必须添加到$array[$ind1][$ind2]$array[$ind1][$ind2][$ind3][$ind4]中。

是否可以创建类似arrayAdd($number,$arrayOfIndices)的函数 在第一种情况下,$arrayOfIndices[$ind,$ind2] 第二种情况[$ind1,$ind2,$ind3,$ind4]

我解决了将其全部写出的问题,具体取决于$arrayOfIndices的数量。

但是希望以一种更加优雅和通用的方式。

1 个答案:

答案 0 :(得分:1)

<?php
function array_add(&$array, array $indices, $value) {
    count($indices)==1
        ? $array[$indices[0]] = $value
        : array_add($array[array_shift($indices)], $indices, $value);
}

$data = ['pig'=>'man'];
$indices = ['foo', 'bar', 'baz'];
array_add($data, $indices, 'bat');
var_export($data);

输出:

array (
  'pig' => 'man',
  'foo' => 
  array (
    'bar' => 
    array (
      'baz' => 'bat',
    ),
  ),
)