php - 使用数组和 PHP 查找匹配的相等顺序
问题描述
我正在绞尽脑汁,找不到解决问题的好方法。我正在尝试设计一个可以在我们的订单系统中用于批量拣货的系统。
关键是,我想从一组订单中挑选 6 个彼此最相等的订单。在我们的仓库中,大多数订单都是它们,因此我们可以通过同时挑选一些订单来节省大量时间。
假设我有以下数组:
<?php
$data = [
156 => [
1,
2,
7,
9,
],
332 => [
3,
10,
6
],
456 => [
1,
],
765 => [
7,
2,
10,
],
234 => [
1,
9,
3,
6,
],
191 => [
7,
],
189 => [
7,
6,
3,
],
430 => [
10,
9,
1,
],
482 => [
1,
2,
7,
],
765 => [
1,
5,
9,
]
];
?>
数组键是订单 ID,值是它包含的产品 ID。如果我想挑选看起来很相似的前 3 个订单,我从哪里开始?
任何帮助将非常感激!
解决方案
如果我遇到问题,我会这样做:
$topOrders = [];
foreach($data as $value):
foreach($value as $order):
if(isset($$order)):
$$order++;
else:
$$order = 1;
endif;
$topOrders[$order] = $$order;
endforeach;
endforeach;
print_r($topOrders);
在 $topOrders 中,您有一个数组,其中包含作为键的 ID,作为值,您可以获得订单数量。您所要做的就是对数组进行排序以获得前 3 名。
推荐阅读
- postgresql - 查询IP地址是否在表中startIP和EndIp列的范围内
- css - 如何从 max(env(safe-area-inset-bottom)) 声明 css 回退
- wordpress - 如何在 wordpress 上删除 https://sitename.com/sitename 页面?
- swift - 更改字典数组中的值 swift 5
- java - 如何修复“预期的 URL 方案 'http' 或 'https' 但未找到冒号”错误?
- javascript - 在 Bokeh DataTable 错误中引用行/列的 JS 代码
- go - 如何在函数中添加一些行可变次数?
- java - 用于 JDK8 的 Rhino javascript JSR-223-wrapper 在哪里?
- alfresco - 在 Alfresco 中找不到类 org.alfresco.web.config.WebClientConfigBootstrap
- c# - 为什么 SaveFileDialog 包含韩文字符时会更改文件名?