Php 根据第二个数组设置数组的顺序
我有一个数组,如下所示:Php 根据第二个数组设置数组的顺序,php,arrays,Php,Arrays,我有一个数组,如下所示: array(1) { [0]=> string(1) "2" [1]=> string(1) "1" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" [5]=> string(1) "6" [6]=> string(1) "7" } } 我想做的是根据上述内容订购第二个阵列(随
array(1) {
[0]=> string(1) "2"
[1]=> string(1) "1"
[2]=> string(1) "3"
[3]=> string(1) "4"
[4]=> string(1) "5"
[5]=> string(1) "6"
[6]=> string(1) "7"
}
}
我想做的是根据上述内容订购第二个阵列(随用户选择而变化):
编辑:用户访问有jQuery可排序列表的页面-他们可以随心所欲地排序,并将其保存到数据库中,我现在要做的是,当用户返回页面时,确保列表符合他们设定的顺序。这就是他们设定的顺序
第二个数组是填充.PHP页面上列表的数组,这就是为什么我需要它来匹配第一个数组
我已经看过了数组\u multisort
但没有乐趣
我假设在使用第二个数组之前,我会在PHP中执行一些循环来填充它,但我正在努力-有什么建议吗?我不完全理解您的目标,但我认为下面的代码将产生您想要的结果 这将输出
Array
(
[two] => two
[one] => one
[three] => three
[seven] => seven
)
我猜这就是你要寻找的:
$indexes = array('2','1');
$indexes = array_merge($indexes, range(3,7)); // used range to fill missing indexes
$values = array('two', 'one', 'three', 'four', 'five', 'six', 'seven');
$result=array_combine($indexes, $values);
ksort($result); // sort by keys
print_r($result);
// Array
// (
// [1] => one
// [2] => two
// [3] => three
// [4] => four
// [5] => five
// [6] => six
// [7] => seven
// )
数字的范围是多少?从0到..?计数($firstArray)!=计数($secondArray)。我可以用这个吗?范围是1-7-所以在第一个数组中,你可以看到它当前的范围是2,1,3,4,5,6,7(这可以根据用户的输入而改变)。我想让第二个数组反映第一个数组。解释一下你想对结果数组做什么可能会有帮助。我认为你的目标可以用另一种方式更有效地实现。例如,为什么希望键与结果数组中的值相等?
Array
(
[two] => two
[one] => one
[three] => three
[seven] => seven
)
$indexes = array('2','1');
$indexes = array_merge($indexes, range(3,7)); // used range to fill missing indexes
$values = array('two', 'one', 'three', 'four', 'five', 'six', 'seven');
$result=array_combine($indexes, $values);
ksort($result); // sort by keys
print_r($result);
// Array
// (
// [1] => one
// [2] => two
// [3] => three
// [4] => four
// [5] => five
// [6] => six
// [7] => seven
// )