如何从PHP中获取动态多维数组中的键?

时间:2013-05-25 13:48:50

标签: php multidimensional-array shuffle array-key

如何从动态多维数组中获取那些使用Shuffle函数随机化它们的键?

假设我有这个脚本:

    function customShuffle(array &$array) {
    $firstElement = array_shift($array);
    shuffle($array);
    array_unshift($array, $firstElement);
}

$array = array(
  'row_1' => array("Bird", "Brown", "Bear", "Bangkok", "Bat"),
  'row_2' => array("Carrot", "Cat", "Crispy", "Cross", "Cable"),
  'row_3' => array("All", "Apple", "Adam", "Apart", "Air")
);

array_walk($array, function (&$array) { customShuffle($array); });

Shuffle($array);

该脚本会在垂直方向上给我一个混洗数组并在每个数组中改组元素。

我尝试使用array_keys函数,但它只给我主数组键!

我需要的是获取每个子数组中每个元素的动态键,以及第一级动态数组的键,请问我该怎么做?

2 个答案:

答案 0 :(得分:2)

很容易:) array_walk回调需要两个参数:值键:

array_walk($array, function ($val, $key) { ... });

答案 1 :(得分:1)

使用array_map ..密钥将完整

$array = array_map(function ($v) {
    shuffle($v);
    return $v;
}, $array);

子数组键

$keys = array_map(function ($v) {
    return array_keys($v);
}, $array);