【发布时间】:2021-04-12 04:48:11
【问题描述】:
我想在 PHP 中运行一个脚本,我们需要在其中找到重复项并需要从不同的数组中保留最便宜的对。
我们有 3 个供应商(3 个数组),我们需要组合 3 个数组并找到重复项,然后从重复项中比较价格,让最便宜的那个不重复,同时保持唯一数据,排序顺序价格升序。 请找到以下案例。
注意:需要保持时间复杂度。
$supplier_1[] = array("sr" => "101", "model" => "iphone7", "color" => "silver", "price" => "52000");
$supplier_1[] = array("sr" => "102", "model" => "iphone7", "color" => "gold", "price" => "48000");
$supplier_1[] = array("sr" => "103", "model" => "iphone8", "color" => "red", "price" => "60000");
$supplier_1[] = array("sr" => "104", "model" => "iphoneXR", "color" => "silver", "price" => "72000");
$supplier_1[] = array("sr" => "105", "model" => "Galaxy10", "color" => "black", "price" => "63000");
$supplier_2[] = array("sr" => "201", "model" => "iphone7", "color" => "silver", "price" => "43000");
$supplier_2[] = array("sr" => "202", "model" => "iphone7", "color" => "gold", "price" => "62000");
$supplier_2[] = array("sr" => "203", "model" => "Xaiomi", "color" => "yellow", "price" => "12000");
$supplier_2[] = array("sr" => "204", "model" => "S10", "color" => "Grey", "price" => "80000");
$supplier_3[] = array("sr" => "301", "model" => "iphone7", "color" => "gold", "price" => "63000");
$supplier_3[] = array("sr" => "302", "model" => "iphone7", "color" => "silver", "price" => "48000");
$supplier_3[] = array("sr" => "303", "model" => "Xaiomi", "color" => "yellow", "price" => "18000");
$supplier_3[] = array("sr" => "304", "model" => "S10", "color" => "Grey", "price" => "60000");
$supplier_3[] = array("sr" => "305", "model" => "S12", "color" => "White", "price" => "59000");
// DESIRED RESULT
$result = array(
"0" => array("sr" => "203", "model" => "Xaiomi", "color" => "yellow", "price" => "12000"),
"1" => array("sr" => "201", "model" => "iphone7", "color" => "silver", "price" => "43000"),
"2" => array("sr" => "102", "model" => "iphone7", "color" => "gold", "price" => "48000"),
"3" => array("sr" => "305", "model" => "S12", "color" => "White", "price" => "59000"),
"4" => array("sr" => "103", "model" => "iphone8", "color" => "red", "price" => "60000"),
"5" => array("sr" => "304", "model" => "S10", "color" => "Grey", "price" => "60000"),
"6" => array("sr" => "105", "model" => "Galaxy10", "color" => "black", "price" => "63000"),
"7" => array("sr" => "104", "model" => "iphoneXR", "color" => "silver", "price" => "72000")
);
【问题讨论】:
-
这和mysql有什么关系???
-
@scaisEdge 因为我们正在从 3 个不同的表中检索数据库中的数据
-
所以你可以在 MySQL 端完成这项工作
-
@SlavaRozhnev 你能告诉我如何通过在一个查询中加入 3 个表来比较和找到去重和唯一和最便宜的值。
-
更新您的问题添加相关表架构和您用于填充数组的查询..
标签: php arrays arraylist multidimensional-array