2016-07-19 7 views

答えて

0

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); 

あなたは配列のキーを維持するためにrsortの代わりにarsort機能を使用することができます

Array 
(
    [0] => 0 
    [1] => 2 
    [2] => 1 
) 
+0

ありがとうございます...私はそれを把握します。 –

+0

私は出力を変更したことを確認してください –

+0

@alialwafaaしないでください。このページのすべての回答は、必要な出力[0、2、1]用です。このように質問を変更すると、すべての回答が廃止されます。私はあなたの編集をロールバックしました。代わりに別の質問をしてください。そして、あなたがそうしたとき、理由を説明してください。 – Gordon

0

意志出力。

$array_1 = array('50','20','30'); 
$array_2 = $array_1; 
arsort($array_2); 
$key_array = array_keys($array_2); 
1

代わりrsortの使用arsort、連想インデックスを保持する

ソート配列を逆順にして:その後、あなたはarray_keysを使用するpossibiltyを持っています。その後

からarray_keysを使用します。

$array_1 = array('50','20','30'); 
arsort($array_1); 
print_r(array_keys($array_1)); 
0

私はあなたが保存されたインデックスをソートするために、次のように使うべきだと思う:

$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) } 
0

することができますarray_keyを使用してくださいs()機能。

$array = array('50','30','20'); 

$arr_keys = array_keys($array); 
関連する問題