簡體   English   中英

在PHP中用一個另一個關聯數組值排序一個關聯數組值

[英]sorting one associative array value by another associative array value in PHP

我在標題中有問題。 我試圖自己弄清楚並在互聯網上搜索但沒有結果; /

我有4個數組:

$sortingArr = array(
    0 => 'EURUSD',
    1 => 'USDGBP'
);

$arr1 = array('name' => 'EURUSD');
$arr2 = array('name' => 'USDPLN');
$arr3 = array('name' => 'USDGBP');

我合並了名為arr1,arr2,arr3的那些,如下所示:

$data = array_merge_recursive($arr1, $arr2, $arr3);

如何根據$ sortingArr中的值對來自$ data的值進行排序,例如'EURUSD'...

我希望我能清楚地解釋這一點,並且應該理解,因為我的第一篇文章在這里:)

下面是按另一個數組的值對數組進行排序的函數

<?php
    //sorting array
    $sortingArr = array(
    0 => 'EURUSD',
    1 => 'USDGBP',
);
$arr1 = array('name' => 'EURUSD');
$arr2 = array('name' => 'USDPLN');
$arr3 = array('name' => 'USDGBP');
// to be sorted array
$data = array_merge_recursive($arr1, $arr2, $arr3);
// calling a custom function
$new_data = sortArrayByArrayValue($data['name'],$sortingArr);
print_r($new_data); // print results 

function sortArrayByArrayValue($array, $orderArray) {
    $ordered = array();
    // loop the array
    foreach ($orderArray as $key=>$value) {
        // check the value is in the $array
        if (($k = array_search($value, $array)) !== false) {
            // assign thet value to new array
            $ordered[$k] = $array[$k];
            // unset the value
            unset($array[$k]);
        }
    }
    return $ordered+ $array;
}

輸出:

Array
(
    [0] => EURUSD
    [2] => USDGBP
    [1] => USDPLN
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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