2009-11-12 4 views
1

я хочу такое же значение имеет тот же индекс , напримерКак отсортировать массив в PHP

1 2 2 3 5 

после рода:

array(
0=>1 
1=>2 
1=>2 
3=>3 
4=>5); 

, но мы не можем установить дубликат индекса в массиве PHP.

+2

Я бы сказал, что тело вопроса не связано с заголовком ... – Konamiman

+1

хе-хе у вас есть все удивленные! – RageZ

+0

@bruce: вы должны написать свой вопрос в первый раз. – RageZ

ответ

6

Есть функция sort в php! (Я отвечаю на тему, а не тело, не вполне следовать за вами, но вот как-то в PHP)

Пример

<?php 

$fruits = array("lemon", "orange", "banana", "apple"); 

sort($fruits); 

foreach ($fruits as $key => $val) { 
    echo "fruits[" . $key . "] = " . $val . "\n"; 
} 

?> 

дублирует

В приведенном выше примеры дубликатов будут иметь свои собственные индексы, поэтому массив:

5 4 5 1 3 1 2 

Будет выглядеть так

1 1 2 3 4 5 5 

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

Если вы хорошо с ним, вы можете удалить дубликаты, используя array_unique $newArray=array_unique($arr);

что приведет к тому, массив, глядя, как этот

1 2 3 4 5 
2

Try, чтобы использовать это.

sort($array); 
2

Вы правы, вы не можете иметь одинаковые значения на тот же индекс в массиве - каждый индекс в массиве имеет только одно значение.

Что касается названия вопроса, для сортировки массива в PHP используйте sort.

Если это не ответило на то, что вы пытаетесь спросить, вы можете отредактировать свой вопрос, чтобы сделать его более понятным (тело вопроса, похоже, не связано с заголовком вопроса). редактировать

сообщение OP в:

Вы не хранить несколько значений в том же ключе, ваш выходной массив (array(0=>1, 1=>2, 1=>2, 3=>3, 4=>5);) не имеет смысла (ключ 1 делает карту к значению 2) в сортированный массив. Вы пытаетесь сохранить количество вхождений чисел?

например.учитывая вход:

1, 2, 2, 3, 5 

получить выход:

array(1=>1, 2=>2, 3=>1, 5=>1); // there is 1 "1", there are 2 "2"s etc. 
+0

Хм, он может подумать о хэш-таблице .. –

0

Вы ищете array_unique:

array array_unique (array $array [, int $sort_flags = SORT_STRING ])

принимает массив ввода и возвращает новый массив без дубликата значения.

Смежные вопросы