Php 如何根据多维数组的值从多维数组中删除ommit数组
我有一个输入数组:Php 如何根据多维数组的值从多维数组中删除ommit数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个输入数组: Array( Array( [vehicle] => BUS NO.1 [trip_name] => Trip00011 [running_km] => 5000 ) Array( [vehicle] => BUS NO.2 [trip_name] => Trip00021
Array(
Array(
[vehicle] => BUS NO.1
[trip_name] => Trip00011
[running_km] => 5000
)
Array(
[vehicle] => BUS NO.2
[trip_name] => Trip00021
[running_km] => 2400
)
Array(
[vehicle] => BUS NO.1
[trip_name] => Trip00011
[running_km] => 0
)
Array(
[vehicle] => BUS NO.2
[trip_name] => Trip00011
[running_km] => 0
)
Array(
[vehicle] => BUS NO.2
[trip_name] => Trip00021
[running_km] => 0
)
)
我需要将此阵列更改为:
Array(
Array(
[vehicle] => BUS NO.1
[trip_name] => Trip00011
[running_km] => 5000
)
Array(
[vehicle] => BUS NO.2
[trip_name] => Trip00021
[running_km] => 2400
)
Array(
[vehicle] => BUS NO.2
[trip_name] => Trip00011
[running_km] => 0
)
)
请查看两个数组。对于相同的
车辆和相同的行程名称
,我需要根据running_km
中的值省略running_km=>0
数组。你能帮我做这个吗。如果你循环数组,你可以构建一个复合数组键。(例如:“2号公交车Trip00021”)。
如果运行公里数大于,则覆盖新数组中的项目
在循环之后,我执行一个数组_值,将关联数组键移除为索引数组键
foreach($arr as $item){
$key = $item['vehicle'] . $item['trip_name'];
if(isset($new[$key])){
if($item['running_km'] > $new[$key]['running_km']) $new[$key] = $item;
}else{
$new[$key] = $item;
}
}
$new = array_values($new);
var_dump($new);
输出:
array(3) {
[0]=>
array(3) {
["vehicle"]=>
string(8) "BUS NO.1"
["trip_name"]=>
string(9) "Trip00011"
["running_km"]=>
string(4) "5000"
}
[1]=>
array(3) {
["vehicle"]=>
string(8) "BUS NO.2"
["trip_name"]=>
string(9) "Trip00021"
["running_km"]=>
string(4) "2400"
}
[2]=>
array(3) {
["vehicle"]=>
string(8) "BUS NO.2"
["trip_name"]=>
string(9) "Trip00011"
["running_km"]=>
string(1) "0"
}
}
此问题缺少任何代码来向我们表明您已尝试自行解决此问题。如果您尝试了一些东西,请向我们展示您尝试了什么,预期输出的示例以及您实际得到的结果。如果你还没有尝试过任何东西,你需要在发布之前尝试一下。我们可以帮助您使用现有代码,但我们不会为您编写。所以这不是免费的编码服务。请阅读:还有,我的答案对你来说不适用吗@miya?