Advertisement
enevlogiev

multisort

May 2nd, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.80 KB | None | 0 0
  1.  
  2. <?php
  3. date_default_timezone_set('Europe/Sofia');
  4.  
  5. $text = preg_split("/\\r?\n/", $_GET['text'], -1, PREG_SPLIT_NO_EMPTY);
  6. $minPrice = floatval($_GET['min-price']);
  7. $maxPrice = floatval($_GET['max-price']);
  8. $sortCriteria = $_GET['sort'];
  9. $order = $_GET['order'];
  10.  
  11. $data = array();
  12. $sortArr = array();
  13. $dateArr = array();
  14. $index = 0;
  15.  
  16. foreach ($text as $token) {
  17.     $tokens = explode('/', $token);
  18.     $author = trim($tokens[0]);
  19.     $name = trim($tokens[1]);
  20.     $genre = trim($tokens[2]);
  21.     $price = trim($tokens[3]);
  22.     $date = date_create(trim($tokens[4]));
  23.     $info = trim($tokens[5]);
  24.     if ($price < $minPrice || $price > $maxPrice) {
  25.         continue;
  26.     }
  27.  
  28.     $data[] = [
  29.                 "author" => $author,
  30.                 "name" => $name,
  31.                 "genre" => $genre,
  32.                 "price" => $price,
  33.                 "publish-date" => $date,
  34.                 "info" => $info
  35.                ];
  36. //Ей тия два масива използвам за multisort. Нещо като се промени тук, се променя и в главния масив. Туй е : )
  37.     $sortArr[] = $data[$index++][$sortCriteria];
  38.     $dateArr[] = $date;
  39. }
  40.  
  41. $sort = $order == 'ascending' ? SORT_ASC : SORT_DESC;
  42.  
  43. array_multisort($sortArr, $sort, $dateArr, SORT_ASC, $data);
  44.  
  45.  
  46.  
  47. foreach ($data as $book) {
  48.     echo "<div>";
  49.     echo "<p>" . htmlspecialchars($book['name']) . "</p>";
  50.     echo "<ul>";
  51.     echo "<li>" . htmlspecialchars($book['author']) . "</li>";
  52.     echo "<li>" . htmlspecialchars($book['genre']) . "</li>";
  53.     echo "<li>" . htmlspecialchars($book['price']) . "</li>";
  54.     echo "<li>" . $book['publish-date']->format('Y-m-d') . "</li>";
  55.     echo "<li>" . htmlspecialchars($book['info']) . "</li>";
  56.     echo "</ul>";
  57.     echo "</div>";
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement