【发布时间】:2020-03-03 10:57:09
【问题描述】:
Array(
[0] => Array
(
[0] => E
[1] => TIME
[2] => 46.00
[3] => Keck
)
[1] => Array
(
[0] => D
[1] => TIME
[2] => 46.00
[3] => Keck
)
[2] => Array
(
[0] => B
[1] => TIME
[2] => 50.40
[3] => Keck
)
[3] => Array
(
[0] => C
[1] => TIME
[2] => 54.40
[3] => Keck
)
[4] => Array
(
[0] => G
[1] => TIME
[2] => 80.00
[3] => Keck
)
[5] => Array
(
[0] => A
[1] => TIME
[2] => 80.00
[3] => Keck
)
我有一个这样的数组。我想要的是通过这些子数组,如果值 [1] 和 [3] 相同,请检查最高价格,并为所有其他人保存 [0] 值。如果我们有更多的子数组,其中最高价格随机选择最大值,而其他看跌期权则较低。所以作为输出,我想要:
Array
(
[0] => E
[1] => D
[2] => B
[3] => C
[4] => A
)
这是我的代码,但它不符合我的要求:
$res=array();
$Mfr= arrays_column($orginal_array, 1);
$dupes = array_diffs(array_count_values($Mfr), array(1)); // how many times a mfr sku appears [mfrsku_example] => 3
print "\nThese are repetitive values:\n[mfrsku] => (number of reps)\n";
print_r($dupes);
foreach($dupes as $key => $val){
$temp = array_intersect_key(arrays_column($final_array, 3), array_intersect($Mfr, array($key)));
if(count(array_unique($temp)) < count($temp)){
$temp = array_intersect_key(arrays_column($final_array, 2), array_intersect($Mfr, array($key)));
$temp = array_diffs($temp, array(min($temp)));
$res[] = array_intersect_key(arrays_column($final_array, 0), $temp);
}else{
}
//$res[] = array_intersect_key(arrays_column($final_array, 0), $temp);
//$res[] = $final_array[array_search(max($temp), $temp)][0];
}
【问题讨论】:
-
[1] 和 [3] 对应于
TIME和Keck,不是吗? -
正确的@AksenP
-
那么不应该开启最高价检查
-
检查1和3值相同的子数组的最高价格
-
这些值不同