Пересортировка массива с помощью ключей массива? - PullRequest
1 голос
/ 23 августа 2011

У меня есть два массива, $country и $redirect с каждой записью, соответствующей ее точному аналогу, например $redirect[1] и $country[1].

После отмены установки значений по всему массиву, я мог бы бытьоставленный, например, с массивом, в котором установлены только $var[4] и $var[2].Я хочу переназначить ключи массива от 0 и выше, чтобы у $var[2] его ключ был переназначен на $var[0], а $var[4] - на 1011 *.

По существу функция sort(), но сортировка по текущему ключу массива, в отличие от числового / строкового значения массива.

Возможно ли это?

Любые ответыили совет был бы очень признателен;)!

ОБНОВЛЕНИЕ:

Я пытался использовать и ksort() и array_values(), однако я не уверенэто действительно то, что мне нужно, так как я планирую использовать функцию size_of().

Мой код:

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3");
ksort($var);
for($i = 0, $size = sizeof($var); $i < $size; $i++) {
    $var[$i] = "foo";
}
var_dump($var);

Возвращает:

array(5) { [2]=> string(3) "foo" [4]=> string(7) "value_2" [6]=> string(7) "value_3" [0]=> string(3) "foo" [1]=> string(3) "foo" }

Любые дополнительныеидеи / ответы о том, как я мог бы заставить это работать, будет принята с благодарностью!

1 Ответ

2 голосов
/ 23 августа 2011

Использовать array_values() (возвращает «отсортированный» массив):

$var = array(2 => "value_1", 4 => "value_2", 6 => "value_3");
$var = array_values($var);
for($i = 0, $size = sizeof($var); $i < $size; $i++) {
    $var[$i] = "foo";
}
var_dump($var);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...