如何使用预定义值替换数组键

时间:2011-12-02 23:06:11

标签: php arrays sorting key

假设我有以下情况:

我有一个这样的数组:

$array = array(1 => "text1",2 => "text2", 3 => "Text3" , 4 => "Text4");

在一些函数之后,我收到一个包含这些值的字符串:

$string = "2,1,4,3"; // this values are dynamic 

我想要实现的是按字符串的顺序对该数组($array)进行排序;所以结果应该是:

<--- some function --- > 
$result = array(2 => "text2",1=> "text1",4=>"Text4",3=>"Text3"));

3 个答案:

答案 0 :(得分:1)

PHP的array_multisort()函数 - http://php.net/manual/en/function.array-multisort.php

未经测试,但可能类似:

array_multisort(explode(",", $string), $array);

键可能会丢失。

答案 1 :(得分:1)

$keyArr = explode(',', $string);
$sortedArr = array();

foreach ($keyArr as $key)
{
    $sortedArr[$key] = $array[$key];
}

答案 2 :(得分:0)

  1. 使用explode
  2. 将字符串拆分为索引
  3. 制作一个空数组$result
  4. 迭代分解的数组键,执行$result[$key] = $input[$key]
  5. <强> See it in action