我在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循环。很想看看有没有人提出一些好的解决方案。你可能在哈希类的正确轨道上,但我不太熟悉它。 –