[英]get index array of minimum value in an array and if there are some same minimum number check them with another same length array
我有兩個數組:
array_A= [6, 8, 3, 3] // this array has two same minimum number.(3, 3 for example)
array_B= [4, 5, 6, 7] // this array has not same numbers always.
我想獲得array_A的最小數量的索引,而array_A有兩個相同的min然后我想用array_B檢查這兩個數字在同一個地方索引,(例如第一個3乘:6和第二個3乘:7)並且由於 (6 , 7) 的最小值為 6,因此為我們提供 array_A 中前 3 個的真實索引。
我在 php 中通過 min 函數嘗試了很多次,但這是一個大問題。 這個問題應該是普遍的。 謝謝。
看起來並不復雜:) 這是解決方案之一
$a1= [6, 8, 3, 3];
$a2= [4, 5, 6, 7];
$keys = array_keys($a1, min($a1));
foreach($keys as $key){
$res[] = $a2[$key];
}
echo min($res);
我使用pack
來構建新數組的 32 位密鑰(來自數組 A 的 16 個密鑰 + 來自數組 B 的 16 個密鑰)。 然后我按鍵對數組進行排序並提取最小的值:
$arrA= [6, 8, 3, 3];
$arrB= [4, 5, 6, 7];
$arr=[];
foreach ($arrA as $k => $v) {
$arr[pack("nn", $v, $arrB[$k])] = $k;
}
krsort($arr);
echo array_pop($arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.