Сортировать данные в несколько массивов - PullRequest
1 голос
/ 31 марта 2011

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

   $B = array(
    array("firstnam" =>"A", "lastname"=>"D", "grade" => "k1", "score" => 50),
    array("firstnam" =>"B", "lastname"=>"C", "grade" => "k4", "score" => 20),
    array("firstnam" =>"C", "lastname"=>"B", "grade" => "k3", "score" => 10),
    array("firstnam" =>"D", "lastname"=>"A", "grade" => "k2", "score" => 80)
);

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Если вы пытаетесь отсортировать h1-3 по h4, попробуйте это:

array_multisort($h4, SORT_NUMERIC, SORT_ASC, $h3, SORT_NUMERIC, SORT_ASC, $h2, SORT_NUMERIC, SORT_ASC, $h1, SORT_NUMERIC, SORT_ASC);

Если это не то, что вы ищете, попробуйте перефразировать ваш вопрос.

0 голосов
/ 31 марта 2011
public function sortByHeader($columns, $sortOrder=1/* or -1 for desc */) {
    $this->sort_columns = $columns;
    $this->sort_order = $sortOrder;
    uasort($this->data, array($this, "cmp"));
}

public function cmp($a, $b) {
    foreach ($this->sort_columns as $column) {
        // It's also important to check datatypes if you have string and it in diff columns
        if ($a[$column] > $b[$column]) {
            return $this->sort_order;
        }
        if ($a[$column] < $b[$column]) {
            return -$this->sort_order;
        }
    }
    return 0;
}

uasort позволяет использовать собственный обратный вызов для сортировки ваших данных.Смотрите PHP man для справки

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