多维数组
Array
(
[0] => Array
(
[ID] => 5068
[Item] => 2737
[Unit] => 15
)
[1] => Array
(
[ID] => 5067
[Item] => 2737
[Unit] => 13
)
)
单维数组
Array (
[0] => 11
[1] => 13
[2] => 15
)
预期产出:
Array
(
[0] => Array
(
[ID] => 5067
[Item] => 2737
[Unit] => 13
)
[1] => Array
(
[ID] => 5068
[Item] => 2737
[Unit] => 15
)
)
单维数组不必是ASC / DESC顺序。我想根据单位值根据单维数组重新排序多维数组。我怎样才能做到这一点?
答案 0 :(得分:0)
这样的事情可能有用吗?
$multiDimArray = [
0 => [
'ID' => 5068,
'Item' => 2737,
'Unit' => 15
],
1 => [
'ID' => 5067,
'Item' => 2737,
'Unit' => 13
]
];
$singleDim = [
11,13,15
];
usort($multiDimArray,function($a,$b){
global $singleDim;
return ($singleDim[0] >= $a['Unit']) ? -1 :1;
});
print_r($multiDimArray);
在我的脑海中有一些东西告诉我,我错过了一些东西。但随意试试吧。
答案 1 :(得分:0)
假设单个数组中的值都映射到Unit
中的值,您可以循环单维数组,然后循环多维数组中的值。
在内部循环中使用in_array
来检查单维数组中的值是否出现在多维数组中。如果是,您可以将其添加到新数组中。
$result = [];
foreach ($singleDimension as $sm) {
foreach ($multiDimensional as $md) {
if (in_array($sm, $md)) {
$result[] = $md;
}
}
}