php - 多维数组按 DESC 顺序重新排列,内部多维数组在 DESC 中,但外部父数组不起作用
问题描述
工作子数组与父多维数组在这里。这里子数组按 DESC 顺序运行。
[
{
"variation_id": "23",
"variation_price": "200.00"
},
{
"variation_id": "25",
"variation_price": "100.00"
}
],
[
{
"variation_id": "31",
"variation_price": "150.00"
},
{
"variation_id": "30",
"variation_price": "80.00"
}
],
[
{
"variation_id": "45",
"variation_price": "300.00"
},
{
"variation_id": "44",
"variation_price": "200.56"
}
]
并且希望按顺序工作,谢谢意味着整个多维(父数组和子数组)按 DESC 顺序工作。
[
[
{
"variation_id": "45",
"variation_price": "300.00"
},
{
"variation_id": "44",
"variation_price": "200.56"
}
],
[
{
"variation_id": "23",
"variation_price": "200.00"
},
{
"variation_id": "25",
"variation_price": "100.00"
}
],
[
{
"variation_id": "31",
"variation_price": "150.00"
},
{
"variation_id": "30",
"variation_price": "80.00"
}
]
]
我已经编写了第一个查询以获取子数组作为 DESC 顺序以获取查询的结果 - >
$response = $find_variation_array;
$sort = array();
foreach($response as $k=>$v) {
$sort['variation_price'][$k] = $v['variation_price'];
}
array_multisort($sort['variation_price'], SORT_DESC, $response);
不适用于第二步,即父数组。
任何人都可以与我分享如何以 DESC 顺序获取整个父子多维数组的任何想法。提前感谢您的友好知识分享。
解决方案
假设你的数组是这样的:
[
[
[
"variation_id" => "23",
"variation_price" => "200.00"
],
[
"variation_id" => "25",
"variation_price" => "100.00"
]
],
[
[
"variation_id" => "31",
"variation_price" => "150.00"
],
[
"variation_id" => "30",
"variation_price" => "80.00"
]
],
[
[
"variation_id" => "45",
"variation_price" => "300.00"
],
[
"variation_id" => "44",
"variation_price" => "200.56"
]
]
]
那么它可能是一种解决方法:
$test_array =
[
[
[
"variation_id" => "23",
"variation_price" => "200.00"
],
[
"variation_id" => "25",
"variation_price" => "100.00"
]
],
[
[
"variation_id" => "31",
"variation_price" => "150.00"
],
[
"variation_id" => "30",
"variation_price" => "80.00"
]
],
[
[
"variation_id" => "45",
"variation_price" => "300.00"
],
[
"variation_id" => "44",
"variation_price" => "200.56"
]
]
];
$sort_array_order = array();
foreach ($test_array as $test_key => $test_value) {
$temp_sumation_of_variation_price = 0;
foreach ($test_value as $key => $value) {
$temp_sumation_of_variation_price += $value['variation_price'];
}
$sort_array_order[] = $temp_sumation_of_variation_price;
}
array_multisort($sort_array_order, SORT_DESC, $test_array);
echo "<pre>";print_r($test_array);echo "</pre>";
推荐阅读
- intellij-idea - Java / IntelliJ 无法识别“java”导入或“String”类型
- php - 如何在 php 中使用 where 子句进行计数查询?
- algorithm - 使用机器学习,我们如何确定关于活动的给定描述是否符合企业社会责任?
- c# - 哈希表重复
- ionic-framework - Ionic ion-checkbox [(ngModel)]="!item.open" 它不起作用
- amazon-web-services - 使用 CloudFormation 时 NodeGroup 未加入 EKS 集群
- php - 如何在一个实例类php中使用多个函数
- error-handling - 我应该在我的 Rust API 中抽象错误类型吗?
- python - 如何将 MySQL 数据库连接到输入函数
- azure - Powershell 和 cloudshell 上的 Get-AzSnapshot 问题