我在cakephp 2.2.3中有这个多维关联$ modules数组:
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' ) ) ) )
其中'category'应在每个父类'type'中按字母顺序排序
我试过
$modules = Hash::combine($modules, '{n}', '{n}.{n}', '{s}.{s}.{n}.zone');
但没有成功。我想我不是在使用Hash :: combine,因为我应该...... 谢谢,马吕斯
答案 0 :(得分:0)
只需在foreach中使用foreach来遍历您的阵列并根据您的偏好构建一个新阵列。