我在CakePHP的2.2.3這個多維assoc命令$模塊陣列:重新排列多維數組中的CakePHP 2.2
array( 'type1' => array( (int) 0 => array( 'name' => 'name16', 'type' => '1', 'category' => 'categoryC', 'zone' => 'zone1' ), (int) 1 => array( 'name' => 'name17', 'type' => '1', 'category' => 'categoryB', 'zone' => 'zone1' ), (int) 2 => array( 'name' => 'name18', 'type' => '1', 'category' => 'categoryA', 'zone' => 'zone3' ), (int) 3 => array( 'name' => 'name19', 'type' => '1', 'category' => 'categoryC', 'zone' => 'zone3' ), (int) 4 => array( 'name' => 'name22', 'type' => '1', 'category' => 'categoryA', 'zone' => 'zone2' ) ), 'type2' => array( (int) 0 => array( 'name' => 'name1', 'type' => '2', 'category' => 'categoryB', 'zone' => 'zone2' ), (int) 1 => array( 'name' => 'name2', 'type' => '2', 'category' => 'categoryB', 'zone' => 'zone2' ), (int) 2 => array( 'name' => 'name3', 'type' => '2', 'category' => 'categoryA', 'zone' => 'zone1' ), (int) 3 => array( 'name' => 'name4', 'type' => '2', 'category' => 'categoryC', 'zone' => 'zone3' ), (int) 4 => array( 'name' => 'name5', 'type' => '2', 'category' => 'categoryA', 'zone' => 'zone3' ) ) )
,我想重新安排它像
array( 'zone1' => array( 'type1' => array( (int) 0 => array( 'name' => 'name17', 'type' => '1', 'category' => 'categoryB' ), (int) 1 => array( 'name' => 'name16', 'type' => '1', 'category' => 'categoryC' ) ), 'type2' => array( (int) 0 => array( 'name' => 'name3', 'type' => '2', 'category' => 'categoryA' ) ) ), 'zone2' => array( 'type1' => array( (int) 0 => array( 'name' => 'name22', 'type' => '1', 'category' => 'categoryA' ) ), 'type2' => array( (int) 0 => array( 'name' => 'name1', 'type' => '2', 'category' => 'categoryB' ), (int) 1 => array( 'name' => 'name2', 'type' => '2', 'category' => 'categoryB' ) ) ), 'zone3' => array( 'type1' => array( (int) 0 => array( 'name' => 'name18', 'type' => '1', 'category' => 'categoryA' ), (int) 0 => array( 'name' => 'name19', 'type' => '1', 'category' => 'categoryC' ) ), 'type2' => array( (int) 0 => array( 'name' => 'name5', 'type' => '2', 'category' => 'categoryA' ), (int) 1 => array( 'name' => 'name4', 'type' => '2', 'category' => 'categoryC' ) ) ) )
其中, '類別' 應每個父「類型」
我與
$modules = Hash::combine($modules, '{n}', '{n}.{n}', '{s}.{s}.{n}.zone');試圖內按字母順序排序
但沒有成功。我想我沒有使用Hash :: combine,因爲我應該...
謝謝,Marius
我認爲這個問題的答案會根據您對以下問題的回答而大不相同。原始數組中的區域編號是「動態」還是有固定數量的區域zone1,zone2,zone3。如果它們是固定的,則可以爲每個區域使用array_search()。 –
你好,我陣列中的區域名稱是動態的,沒有預設,沒有固定的數量。謝謝! – Marius
我在這件事上摸不着頭腦。我知道你的頁面加載時間會隨着你在區域數量上的增長而變得無法忍受,並且必須嵌套一堆foreach循環。很想看看有沒有人提出一些好的解決方案。你可能在哈希類的正確軌道上,但我不太熟悉它。 –