按 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'...
我希望我解释清楚了,请理解,因为这是我的第一个 post :)
下面是根据另一个数组的值对数组进行排序的函数
<?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
)
我有标题中的问题。我试图自己弄清楚并在互联网上搜索但没有结果;/
我有 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'...我希望我解释清楚了,请理解,因为这是我的第一个 post :)
下面是根据另一个数组的值对数组进行排序的函数
<?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
)