[ create a new paste ] login | about

Link: http://codepad.org/fbX90qGe    [ raw code | output | fork ]

PHP, pasted on Mar 6:
<?php //

$ar = array(
    array('pid'=>'544', 'discount'=>'26.00','promo_id'=>'9807'),
    array('pid'=>'544', 'discount'=>'15.00','promo_id'=>'9821'),
    array('pid'=>'544', 'discount'=>'21.00','promo_id'=>'9811'),
    array('pid'=>'2965','discount'=>'25.00','promo_id'=>'9810'),
    array('pid'=>'2965','discount'=>'30.50','promo_id'=>'9809'),
    array('pid'=>'1866','discount'=>'30.00','promo_id'=>'9810'),
    array('pid'=>'1866','discount'=>'25.50','promo_id'=>'9809')
);

$outUnique = array();

foreach ($ar as $entry) {

    $curPid = $entry['pid'];

    if (isset($outUnique[$curPid])) { // check the discount

        if ($entry['discount'] > $outUnique[$curPid]['discount']) {
            $outUnique[$curPid] = $entry;
        }
    }
    else { // add to the output

        $outUnique[$curPid] = $entry;
    }
}
// show the entries
var_dump(array_values($outUnique));


Output:
array(3) {
  [0]=>
  array(3) {
    ["pid"]=>
    string(3) "544"
    ["discount"]=>
    string(5) "26.00"
    ["promo_id"]=>
    string(4) "9807"
  }
  [1]=>
  array(3) {
    ["pid"]=>
    string(4) "2965"
    ["discount"]=>
    string(5) "30.50"
    ["promo_id"]=>
    string(4) "9809"
  }
  [2]=>
  array(3) {
    ["pid"]=>
    string(4) "1866"
    ["discount"]=>
    string(5) "30.00"
    ["promo_id"]=>
    string(4) "9810"
  }
}


Create a new paste based on this one


Comments: