0

我有一个数组如下:

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 {
   "Two" => "Two",
   "One" => "One",
   "Three" => "Three",
   "Four" => "Four",
   "Five" => "Five",
   "Six" => "Six"
   "Seven" => "Seven"     
}

编辑:用户访问有 jQuery 可排序列表的页面 - 他们随意订购并保存到数据库中,我现在要做的是当用户返回页面时确保清单按照他们列出的顺序排列。所以这是他们设定的顺序。

第二个数组是填充 .PHP 页面上列表的数组,这就是为什么我需要它来匹配第一个数组。

我看过,array_multisort但没有喜悦。

我假设我会在 PHP 中做一些循环来填充第二个数组,然后再使用它,但我很挣扎 - 有什么建议吗?

4

2 回答 2

1

我猜array_combine是你正在寻找的:

$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
// )
于 2013-01-28T15:34:24.490 回答
0

我不完全理解你的目标,但我认为下面的代码会产生你想要的结果

$data = array("two", "one", "three", "seven");
$result = array();
foreach ( $data as $item) {
    $result[$item] = $item;
}

print_r($result);

这将输出

Array
(
  [two] => two
  [one] => one
  [three] => three
  [seven] => seven
)
于 2013-01-28T15:03:37.273 回答