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コールバックには、値キーの 2 つのパラメータが必要です。

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 に答える