基于公共值对PHP数组重新排序
我唯一关心的是尺寸。我需要进入一个新的数组级别并添加它,将它们分组在一起 我基本上需要将它们全部分组到它们自己的数组中,这样我就可以遍历它们并执行其他操作 当前阵列:基于公共值对PHP数组重新排序,php,arrays,sorting,Php,Arrays,Sorting,我唯一关心的是尺寸。我需要进入一个新的数组级别并添加它,将它们分组在一起 我基本上需要将它们全部分组到它们自己的数组中,这样我就可以遍历它们并执行其他操作 当前阵列: [0] => Array ( [name] => random name 2 [sizes] => ["XS","S","M","L","XL","XXL&q
[0] => Array
(
[name] => random name 2
[sizes] => ["XS","S","M","L","XL","XXL"]
)
[1] => Array
(
[name] => random name 1
[sizes] => One Size
)
[2] => Array
(
[name] => random name 3
[sizes] => ["XS","S","M","L","XL","XXL"]
)
通缉:
[0] => Array
(
[0] => Array
(
[name] => random name 1
[sizes] => One Size
)
)
[1] => Array
(
[0] => Array
(
[name] => random name 2
[sizes] => ["XS","S","M","L","XL","XXL"]
)
[1] => Array
(
[name] => random name 3
[sizes] => ["XS","S","M","L","XL","XXL"]
)
)
循环数组并创建一个新数组,该数组的大小现在作为键。
稍后使用数组_值删除关联键
foreach($arr as $item){
$new[$item['sizes']][] = $item;
}
$new = array_values($new); // remove associative
为什么3先于2?你试过什么?如果产品4的尺寸范围是S->L,会发生什么?3是随机的,忽略它,我现在就改变。如果它的大小范围是S->L,那么我希望它的分组与上面两个完全相同,在[2]=>Array()@grumpycrudon中,我不确定我是否理解你的意思。上面示例中的键是字符串“size”。是的,它看起来确实像一个数组,但如果它是一个数组,print\r就不会这样打印它。是的。。如果没有打印,r会将其写为[sizes]=>array(……但它没有。并不是说其他字符串都没有包含在
“
中,但它们仍然是字符串。