Как заменить ключи массива предопределенными значениями - PullRequest
0 голосов
/ 03 декабря 2011

Предполагая, что у меня следующая ситуация:

У меня есть такой массив:

$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 ]

1 голос
/ 03 декабря 2011
$keyArr = explode(',', $string);
$sortedArr = array();

foreach ($keyArr as $key)
{
    $sortedArr[$key] = $array[$key];
}
1 голос
/ 03 декабря 2011

PHP * функция 1001 * - http://php.net/manual/en/function.array-multisort.php

Не проверено, но, вероятно, что-то вроде:

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

Хотя ключи могут быть потеряны.

0 голосов
/ 03 декабря 2011
  1. Разбейте строку на индексы с помощью explode
  2. Создать пустой массив $result
  3. Перебрать массив ключей с разнесением, выполнив $result[$key] = $input[$key]

увидеть его в действии .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...