【发布时间】:2021-05-06 10:38:49
【问题描述】:
我想删除数组中最高值的重复记录。
数组:
Array
(
[0] => Array
(
[id] => 1
[number] => 123
[price] => 6
)
[1] => Array
(
[id] => 2
[number] => 456
[price] => 6
)
[2] => Array
(
[id] => 3
[number] => 123
[price] => 5
)
)
预期结果:
Array
(
[0] => Array
(
[id] => 2
[number] => 456
[price] => 6
)
[1] => Array
(
[id] => 3
[number] => 123
[price] => 5
)
)
数字是重复字段,之后需要比较价格。哪个会更低,将被显示。其余的都应该删除。
我尝试了什么:
$lowest = min($myArray);
$result = array_filter($myArray, function($value, $key) use ($lowest) {
return $value === $lowest;
}, ARRAY_FILTER_USE_BOTH);
我该怎么做?
更新:
@Daniel Dez 解决方案几乎可以正常工作。我用了他的第三种解决方案。但是,它应该是这样工作的。
例如:数字 123 是重复记录,现在它的最低价格是 2。那么,它应该显示 123 数字的数组元素的其余部分。
数组:
$data = [
[
"id" => 1,
"number" => 123,
"price" => 2,
],
[
"id" => 2,
"number" => 456,
"price" => 6,
],
[
"id" => 3,
"number" => 123,
"price" => 5,
],
[
"id" => 4,
"number" => 123,
"price" => 11,
],
[
"id" => 5,
"number" => 456,
"price" => 5,
],
[
"id" => 6,
"number" => 123,
"price" => 5,
]
];
预期输出:
Array
(
[0] => Array
(
[id] => 1
[number] => 123
[price] => 2
)
[1] => Array
(
[id] => 2
[number] => 456
[price] => 5
)
)
请帮帮我。
谢谢。
【问题讨论】:
-
你试过了吗?
-
是的。让我更新一下。
-
请检查我的更新问题。
-
$lowest = min($myArray)在这样的多维数组上毫无意义。 -
是的。我也觉得。但是,我没有解决方案,这就是我在这里添加问题并需要帮助的原因。
标签: php arrays multidimensional-array