用PHP中的另一个关联数组值排序一个关联数组值
我在标题中有类似的问题。我试着自己去弄清楚,在网上搜索,但没有结果/ 我有4个阵列:用PHP中的另一个关联数组值排序一个关联数组值,php,arrays,associative-array,array-merge,Php,Arrays,Associative Array,Array Merge,我在标题中有类似的问题。我试着自己去弄清楚,在网上搜索,但没有结果/ 我有4个阵列: $sortingArr = array( 0 => 'EURUSD', 1 => 'USDGBP' ); $arr1 = array('name' => 'EURUSD'); $arr2 = array('name' => 'USDPLN'); $arr3 = array('name' => 'USDGBP'); 我合并了名为arr1、arr2、arr3的部分,
$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);
如何从$data(如“EURUSD”)中对值进行排序。。。按$sortingArr中的值
我希望我能解释清楚这一点,请理解,因为这是我在这里的第一篇帖子:)下面是按另一个数组的值对一个数组进行排序的函数
<?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;
}
下面是按另一个数组的值对数组进行排序的函数
<?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;
}
你的预期产量是多少?
USDPLN
应该在EURUSD
和USDGBP
之间还是之后?我想得到按$sorting排序的$data数组如下:'EURUSD'、'USDGBP'、'USDPLN'现在我有了:'EURUSD'、'USDPLN'、'USDGBP',您的预期输出按照字母顺序进行基本排序,为什么不仅仅是sort($mergedarray)
?示例您的预期输出是什么?USDPLN
应该在EURUSD
和USDGBP
之间还是之后?我想得到按$sorting排序的$data数组如下:'EURUSD'、'USDGBP'、'USDPLN'现在我有了:'EURUSD'、'USDPLN'、'USDGBP',您的预期输出按照字母顺序进行基本排序,为什么不仅仅是sort($mergedarray)
?举例说明是正确的。或者可以使用returnarray\u merge($ordered,$array);你还有问题吗?没错。或者可以使用returnarray\u merge($ordered,$array);你还有问题吗?