我正在从数据库接收一个数组 - 我无法控制发送哪些数据以及以什么顺序发送。这是目前的样子:
Array
(
[itemCode] => Array
(
[0] => Array
(
[code] => P
[descShort] => Pepperoni
)
[1] => Array
(
[code] => G
[descShort] => Green Peppers
)
[2] => Array
(
[code] => n
[descShort] => No Sauce
)
[3] => Array
(
[code] => x
[descShort] => No Cheese
)
[4] => Array
(
[code] =>
[descShort] => Regular Cheese
)
[5] => Array
(
[code] =>
[descShort] => Regular Sauce
)
)
)
在实际操作中,“无酱”选项之前可以有任意数量的元素(当前位于索引 3,但并不总是这样。)客户希望奶酪和酱项目始终位于“无酱”选项的末尾。列表并按以下方式排序:普通奶酪、无奶酪、普通酱汁、无酱汁。
再次请记住,我无法控制数组的初始创建方式,并且相关元素之前和之间可能存在任意数量的其他元素,我该如何实现这种情况呢?另外需要担心的是,在某些时候,他们可能希望在重新排序中包含其他选项(例如,他们可能会添加“额外奶酪”和“额外酱汁”的选项,并希望它们处于特定位置,例如好吧。)
添加了 var_export
array (
'itemCode' =>
array (
0 =>
array (
'code' => 'P',
'descShort' => 'Pepperoni',
),
1 =>
array (
'code' => 'G',
'descShort' => 'Green Peppers',
),
2 =>
array (
'code' => 'n',
'descShort' => 'No Sauce',
),
3 =>
array (
'code' => 'x',
'descShort' => 'No Cheese',
),
4 =>
array (
'code' => '',
'descShort' => 'Regular Cheese',
),
5 =>
array (
'code' => '',
'descShort' => 'Regular Sauce',
),
),
)
最佳答案
您可以尝试使用usort ,这将允许用户定义的排序。
关于php - 移动多维数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274413/