簡體   English   中英

獲取數組中最小值的索引數組,如果有一些相同的最小值,請使用另一個相同長度的數組檢查它們

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM