我在 cakephp 2.2.3 中有这个多维 assoc $modules 数组:
大批( 'type1' => 数组( (int) 0 => 数组( '名称' => 'name16', '类型' => '1', '类别' => '类别C', '区域' => '区域1' ), (int) 1 => 数组( '名称' => 'name17', '类型' => '1', '类别' => '类别B', '区域' => '区域1' ), (int) 2 => 数组( '名字' => 'name18', '类型' => '1', '类别' => '类别A', '区域' => '区域3' ), (int) 3 => 数组( '名字' => 'name19', '类型' => '1', '类别' => '类别C', '区域' => '区域3' ), (int) 4 => 数组( 'name' => 'name22', '类型' => '1', '类别' => '类别A', '区域' => '区域2' ) ), 'type2' => 数组( (int) 0 => 数组( '名称' => '名称1', '类型' => '2', '类别' => '类别B', '区域' => '区域2' ), (int) 1 => 数组( '名称' => '名称2', '类型' => '2', '类别' => '类别B', '区域' => '区域2' ), (int) 2 => 数组( '名称' => '名称3', '类型' => '2', '类别' => '类别A', '区域' => '区域1' ), (int) 3 => 数组( '名称' => '名称4', '类型' => '2', '类别' => '类别C', '区域' => '区域3' ), (int) 4 => 数组( '名称' => '名称5', '类型' => '2', '类别' => '类别A', '区域' => '区域3' ) ) )
我想重新排列它
大批( 'zone1' => 数组( 'type1' => 数组( (int) 0 => 数组( '名称' => 'name17', '类型' => '1', '类别' => '类别B' ), (int) 1 => 数组( '名称' => 'name16', '类型' => '1', '类别' => '类别C' ) ), 'type2' => 数组( (int) 0 => 数组( '名称' => '名称3', '类型' => '2', '类别' => '类别A' ) ) ), 'zone2' => 数组( 'type1' => 数组( (int) 0 => 数组( 'name' => 'name22', '类型' => '1', '类别' => '类别A' ) ), 'type2' => 数组( (int) 0 => 数组( '名称' => '名称1', '类型' => '2', '类别' => '类别B' ), (int) 1 => 数组( '名称' => '名称2', '类型' => '2', '类别' => '类别B' ) ) ), 'zone3' => 数组( 'type1' => 数组( (int) 0 => 数组( '名字' => 'name18', '类型' => '1', '类别' => '类别A' ), (int) 0 => 数组( '名字' => 'name19', '类型' => '1', '类别' => '类别C' ) ), 'type2' => 数组( (int) 0 => 数组( '名称' => '名称5', '类型' => '2', '类别' => '类别A' ), (int) 1 => 数组( '名称' => '名称4', '类型' => '2', '类别' => '类别C' ) ) ) )
其中“类别”应在每个父“类型”中按字母顺序排序
我试过了
$modules = Hash::combine($modules, '{n}', '{n}.{n}', '{s}.{s}.{n}.zone');
但没有成功。我想我没有像我应该使用的那样使用 Hash::combine ......
谢谢,Marius