Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 找到比较和排序多级数组的最佳方法的提示_Php_Arrays_Algorithm_Sorting - Fatal编程技术网

Php 找到比较和排序多级数组的最佳方法的提示

Php 找到比较和排序多级数组的最佳方法的提示,php,arrays,algorithm,sorting,Php,Arrays,Algorithm,Sorting,因此,我是一名程序员,对常规的基于决策树的算法非常满意,甚至可以通过跳过额外的计算步骤,甚至稍微调整查询,使我们的应用程序更快,从而实现一些小的增强 我面临着一个在算法上比我以前更复杂的问题。我的想法是,我将拥有这个数据数组,比如说,一千个元素。数据数组的每个元素都是一个自己的数组,另外还有5-10个元素 我将创建另一个值数组,我必须从第一个数组元素节点中找到最佳匹配的十个数组元素节点,并以最佳匹配顺序返回 要可视化的一些示例数据: 假设值数组看起来是这样的: $arr = array( e

因此,我是一名程序员,对常规的基于决策树的算法非常满意,甚至可以通过跳过额外的计算步骤,甚至稍微调整查询,使我们的应用程序更快,从而实现一些小的增强

我面临着一个在算法上比我以前更复杂的问题。我的想法是,我将拥有这个数据数组,比如说,一千个元素。数据数组的每个元素都是一个自己的数组,另外还有5-10个元素

我将创建另一个值数组,我必须从第一个数组元素节点中找到最佳匹配的十个数组元素节点,并以最佳匹配顺序返回

要可视化的一些示例数据:

假设值数组看起来是这样的:

$arr = array(
  elm1 = 0.125,
  elm2 = 5
  elm3 = 200
);
数据数组将类似于:

$array = array(
   [0] => array(elm1 => 1.5, elm2 => 8, elm3 => 10),
   [1] => array(elm1 => 0.5, elm2 => 4, elm3 => 100),
   ...etc..
);
现在的想法是,对于每个元素[elm1、elm2、elm3等],我将根据
值数组
和每个
数据数组节点
中该元素的值的接近程度来给出权重,然后基于此,我需要提取十个最佳匹配的数据数组节点元素

这在理论上看起来不错,但我担心处理时间,因为用户会实时等待。现在我不是一个数学高手,即使我试着去理解
big(O)
n(p)
之类的东西,它还是在我头上飞过

因此,我正在寻找一个更通俗的程序员解决方案,而不是深入研究算法复杂性的工作原理。我在想,如果我在索引为elm1、elm2等的位置创建不同的数组,然后对每个数组进行排序,并运行快速排序,可能会有所帮助。我很想知道这个社区的任何人都会如何处理这样的问题


非常感谢您的指点

免责声明:我不是一个PHP的家伙

一般来说,或者从算法的角度来看,最好的解决方案是将二维数组中的数据保存在已排序的地图集合中。 我能够在PHP中找到SortedMap的实现。在插入所有数据之后,从第二个数组中搜索匹配的元素时,会出现对数或O(logn)


希望这有帮助…

我知道这个问题没有特定的代码引发的问题,我知道我得到了-1。不过,我想感谢你花时间回答我的问题,我正在投票表决你的答案,这样你就不会因此而遭受a-1的痛苦。只是为了记录在案:我不是投票失败的人。匿名的选民应该下地狱!我给你一个+来解决这个问题,因为这个问题还不错,考虑到你的答案也投了反对票,我不会认为你是反对票。我猜我们都是被同一个家伙撞跑的:)