You are here:  » Randomize


Randomize

Submitted by rubenxela on Fri, 2012-04-20 13:53 in

Hello.
It's been a while that I use your script, but today I'm front of a probleme to range my results from an array.
Usually I use the function USORT like you shown me years ago but for my actual dev I want to show my result randomly.

So actually I display my results like this (alphabetically or by price):

 $records = array();
   if(!$_GET['page'])$page = 1; // If there is a current page number, use it.
  else $page = $_GET['page']; //If there is no page number, set one!
  $total_number_of_items = 0; //Count the total number of items in the xml feed
  $items_per_page = 6; //Set the number of items displayed per page
  $counter = 0;
  function myRecordHandler($record)
  {
  global $lamarque;
  global $records;
   global $total_number_of_items;
    // DEFINIR MES VARIABLES DE RECHERCHE
 if ($record["MARQUE"]<> $lamarque) return;
$records[] = $record;
// increment total number of records for use in navigation
    $total_number_of_items++;
}
 MagicParser_parse("proteinesflux.xml","myRecordHandler","xml|PRODUCTS/PRODUCT/");
   function cmp($a, $b)
  {
   if ($a["NOM"] == $b["NOM"]) {
      return 0;
    }
    return ($a["NOM"] < $b["NOM"]) ? 1 : -1;
  }
  usort($records,"cmp");
  // now display or use the sorted records
  foreach($records as $record)
  {
  $counter++;
    // return false whilst parsing items on previous pages
    if ($counter <= (($page-1)*$items_per_page)) continue;
   echo "".$record["IDNETA"]." \n\n";
    // exit loop if reached maximum to display on page
    if ($counter == ($page * $items_per_page)) break;
  }
 // finally create navigation bars
  $total_pages_count = ceil($total_number_of_items/$items_per_page);
  unset($_GET['page']);
  $page_href = http_build_query($_GET);

Submitted by support on Fri, 2012-04-20 14:13

Hello ruben,

You can use shuffle() to randomise an array - so in your code in place of:

usort($records,"cmp");

...just use:

shuffle($records);

Cheers!
David
--
MagicParser.com

Submitted by rubenxela on Fri, 2012-04-20 14:26

Very great, thank you very much David.