亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 根據另一個數組對一個數組進行排序

PHP 根據另一個數組對一個數組進行排序

PHP
神不在的星期二 2023-06-24 19:16:20
我有以下場景$elementsInPairs = ["xyz","xxx","yyy","zzz"];$valuesInPair =[4,2,3,1];我需要對第二個數組進行排序,這會給我[1,2,3,4]我可以這樣做sort($valuesInPair)但我也需要根據第二個數組的排序在第一個數組中發生同樣的情況["zzz","xxx","yyy","xyz"];編輯 由于我必須緊急修復它,我想我無法分享更多信息,而且問題似乎很模糊基本上,我的想法是,我有兩組數組,在所有情況下元素數量相同,并且它們彼此鏈接,第二個數組是一組訂單 ID。第一個數組是一組名稱,所以在上面的例子中,我有4 relates to xyz2 relates to xxx3 relates to yyy1 relates to zzz所以我需要根據 ID 進行排序,并且在第一個數組中也反映相同的順序,所以最終的結果是["zzz","xxx","yyy","xyz"];這是根據排序的[1, 2, 3, 4];希望這能解決上面的問題
查看完整描述

5 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可以使用 array_multisort 方法來實現這一點。

array_multisort($valuesInPair, SORT_ASC, $elementsInPair);



查看完整回答
反對 回復 2023-06-24
?
DIEA

TA貢獻1820條經驗 獲得超3個贊

你可以這樣做:


<?php


$elementsInPairs = ["xyz","xxx","yyy","zzz"];

$valuesInPair =[4,2,3,1];

//use [asort][1] - Sort an array in reverse order and maintain index association

asort($valuesInPair);

// and make a new array to sort elementsInPairs

$newelementsInPairs = array();

foreach($valuesInPair as $key=>$val){

    $newelementsInPairs[] = $elementsInPairs[$key];

}

print_r(implode(",",$valuesInPair)."\n");

print_r(implode(",",$newelementsInPairs));

/** Output


1,2,3,4

zzz,xxx,yyy,xyz


 **/


查看完整回答
反對 回復 2023-06-24
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您好,請合并兩個數組并排序

$newArray =array_combine($valuesInPair,$elementsInPairs);

然后sort($newArray);


查看完整回答
反對 回復 2023-06-24
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

使用下面的代碼,這正是您正在尋找的。


$elementsInPairs = ["xyz","xxx","yyy","zzz"];

$valuesInPair =[4,2,3,1];


$data = array_combine($elementsInPairs,$valuesInPair);

asort($data);


$dumpdata = [];


foreach($data as $x => $x_value) {

    $dumpdata[] = $x;

}


print_r($dumpdata);

我希望這可以幫助你。


查看完整回答
反對 回復 2023-06-24
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

您可以使用array_combine()、ksort()和array_values():

<?php


$elementsInPairs = ["xyz","xxx","yyy","zzz"];

$valuesInPair = [4,2,3,1];


$newArray = array_combine($valuesInPair, $elementsInPairs);

ksort($newArray);

$sortedElements = array_values($newArray);


print_r($sortedElements);

將輸出


Array

(

? ? [0] => zzz

? ? [1] => xxx

? ? [2] => yyy

? ? [3] => xyz

)


查看完整回答
反對 回復 2023-06-24
  • 5 回答
  • 0 關注
  • 566 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號