1

我如何从动态多维数组中获取键,我使用 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 函数,但它一直只给我主数组键!

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

4

2 回答 2

2

这很简单 :)array_walk回调需要两个参数:值键:

array_walk($array, function ($val, $key) { ... });
于 2013-05-25T13:50:54.690 回答
1

使用 array_map .. 键将是完整的

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

子数组键

$keys = array_map(function ($v) {
    return array_keys($v);
}, $array);
于 2013-05-25T13:52:25.083 回答