我有兩個陣列 第一個數組:排序的陣列和得到的鑰匙
$array_1 = array('50','20','30');
第二陣列:
$array_2 = array('50','30','20');
第二陣列是通過將生成rsort
到$array_1
如何能我得到另一個關鍵像
$key_array = ('0','2','1');
我有兩個陣列 第一個數組:排序的陣列和得到的鑰匙
$array_1 = array('50','20','30');
第二陣列:
$array_2 = array('50','30','20');
第二陣列是通過將生成rsort
到$array_1
如何能我得到另一個關鍵像
$key_array = ('0','2','1');
的rsort功能將重新索引你的數組鍵:
注:此功能分配新的鍵在數組中的元素。它將刪除可能已分配的所有現有密鑰,而不僅僅是重新排序密鑰。
您可以改爲使用arsort來維護索引關聯。然後你可以簡單地使用array_keys來獲得你想要的結果。
$unsorted = [50, 20, 30]; // array with unsorted values
$in_reverse = $unsorted; // create copy because arsort is by reference
arsort($in_reverse); // do the actual sorting
$keys = array_keys($in_reverse); // fetch the keys
print_r($keys);
將輸出
Array
(
[0] => 0
[1] => 2
[2] => 1
)
可以使用arsort功能,而不是rsort保持數組鍵。之後,你將不得不使用array_keys的possibilty:
$array_1 = array('50','20','30');
$array_2 = $array_1;
arsort($array_2);
$key_array = array_keys($array_2);
代替rsort
使用arsort
,其中
逆向排序數組,並保持索引關係。
之後 - 使用array_keys
:
$array_1 = array('50','20','30');
arsort($array_1);
print_r(array_keys($array_1));
我認爲你應該使用這樣的具有保存索引來進行排序:
$array_1 = array('50','20','30');
arsort($array_1);
$key_array = array_keys($array_1);
var_dump($key_array);
輸出:
array(3) { [0]=> int(0) [1]=> int(2) [2]=> int(1) }
可以使用array_key s()函數。
$array = array('50','30','20');
$arr_keys = array_keys($array);
謝謝......我知道了。 –
請檢查我改變了輸出 –
@alialwafaa請不要這樣做。此頁面上的所有答案均爲所需輸出[0,2,1]。當你用這種方式改變你的問題時,你會過時所有的答案。我已經回滾你的編輯。請提出另一個問題。當你這樣做時,一定要解釋原因。 – Gordon