2016-10-03 15 views
1

タイトルのような質問があります。下図のようにPHP内の別の連想配列値で1つの連想配列値をソートする

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

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

と私はそれらの名前のARR1、ARR2、ARR3を合併:

を/

が、私は4つの配列を持って、私は自分でそれを把握しようとしましたが、インターネットではなく、結果なしで検索します

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

$ sortingArrの値で 'EURUSD' ...のような$ dataから値をソートする方法

は、私はこれを明確に説明し、plsはここにその私の最初のポストだって理解する:)以下

+1

期待される出力は何ですか? 'USDPLN'は' EURUSD'と 'USDGBP'の間かそれ以降か? –

+0

私はこのような$ sortingArrによってソートされた$ data配列を取得したい: 'USDPLN' 'EURUSD'、 'USDGBP'、 は、今私が持っている: 'EURUSD'、 'USDPLN'、 「をUSDGBP '、 –

+0

あなたの期待出力はアルファベット順の基本的なソートに従います。単に 'sort($ mergedarray)'だけではないのですか?例https://eval.in/654407 –

答えて

0

される機能を別の配列の値で配列をソートしたいと考えてい

<?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 
) 
+0

その正しい。またはあなたはreturn array_merge($ ordered、$ array)を使うことができます。それでも問題はありますか? –