2013-05-25 50 views
1

如何從動態多維數組中獲得密鑰?我使用Shuffle函數對它們進行了隨機化?如何從PHP中的動態多維數組中獲取密鑰?

假設我有這樣的腳本:

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

很容易的:) array_walk回調預計兩個參數:價值關鍵:

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

不錯,快一+1;) – Robert

+0

我看到了,但是我補充了一個錯過的信息,請問你會回顧一下你的答案嗎? – MRAN

+0

@ hek2mgl:對不起,但我沒有你那麼專業:( – MRAN

1

使用array_map ..鍵將完整

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

子數組鍵

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

它正在工作,但我有一個固定的鍵爲第一級陣列,儘管他們有某些鍵的名字!以及子級別的數組鍵,但是我是最後一個,因爲我沒有將鍵名分配給他們,我會嘗試並返回。 – MRAN

+0

酷....讓我知道如果你有任何其他問題 – Baba

+0

感謝您的主動:)我也有同樣的問題:) – MRAN

相關問題