Сортировать массив PHP? - PullRequest
0 голосов
/ 11 мая 2009

У меня есть следующее?

$array1 = array();

$array2 = array($Id, $Name, $Count);

array_push($array1, $array2);

Я хочу отсортировать array1 по $ count?

sort() и ksort() не делать то, что мне нужно?

Есть идеи?

Спасибо

Edit:

Я ввожу номер идентификатора, текст имени и количество раз, когда имя встречается, поэтому я хочу, чтобы имя с наибольшим числом находилось в верхней части массива !!

Ответы [ 2 ]

2 голосов
/ 11 мая 2009

Используйте uasort () для сортировки с помощью функции обратного вызова. Пример:

function sort_callback($a, $b) {
    if ($a[2] == $b[2]) {
        return 0;
    }

    return ($a[2] < $b[2]) ? -1 : 1;
}

uasort($array1, 'sort_callback');
1 голос
/ 11 мая 2009

Меня немного смущает то, как вы задали вопрос, но вы пытаетесь сделать что-то подобное?

function order_by($data, $field_name) {

    $code = "return strnatcmp(\$a['$field_name'], \$b['$field_name']);";
    usort($data, create_function('$a,$b', $code));
    return $data;

}

Так, например:

<code>$array1 = array();
$array1[] = array('Id' => 1, 'Name' => 'YT', 'Count' => 30);
$array1[] = array('Id' => 2, 'Name' => 'Da5id', 'Count' => 56);
$array1[] = array('Id' => 3, 'Name' => 'Fido', 'Count' => 12);
$array1[] = array('Id' => 4, 'Name' => 'Hiro', 'Count' => 45);

echo "<pre>";
print_r($array1);
echo "
"; $ array2 = order_by ($ array1, 'Count'); echo "
";
print_r($array2);
echo "
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...