<?php
class Product
{
public function __construct($ean, $price, $count){
$this->ean = $ean;
$this->productPrice = $price;
$this->productCount = $count;
}
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}
}
function removeduplicateKeys($data){
$tmp = [];
for($i=0; $i < count($data); $i++){ $tmp[$data[$i]["ean"]] = $data[$i];
} else if ($data[$i]["productCount"] < $tmp[$data[$i]["ean"]]["productCount"]){
$tmp[$data[$i]["ean"]]["productCount"] = $data[$i]["productCount"];
}
}
$products = [];
foreach($tmp as $p){
$p["productPrice"],
$p["productCount"]));
}
return $products;
}
// $arr =array(
// "0" => Array
// (
// "ean" => 6900532615069,
// "productPrice" => 1140,
// "productCount" => 5
// ),
// "1" => Array
// (
// "ean" => 6900532615069,
// "productPrice" => 1140,
// "productCount" => 50
// ),
// "2" => Array
// (
// "ean" => 6900535364122,
// "productPrice" => 1140,
// "productCount" => 50
// ),
// "3" => Array
// (
// "ean" => 6900532615069,
// "productPrice" => 1140,
// "productCount" => 10,
// ));
(
"ean" => 6900532615069,
"productPrice" => 1140,
"productCount" => 10,
),
(
"ean" => 6900532615069,
"productPrice" => 1140,
"productCount" => 50
),
(
"ean" => 6900535364122,
"productPrice" => 1140,
"productCount" => 50
),
(
"ean" => 6900535364122,
"productPrice" => 1140,
"productCount" => 500
),
(
"ean" => 6900535364122,
"productPrice" => 1140,
"productCount" => 0
),
(
"ean" => 6900532615069,
"productPrice" => 1140,
"productCount" => 10,
));
print_r(removeduplicateKeys
($arr));
PD9waHAKY2xhc3MgUHJvZHVjdAp7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGVhbiwgJHByaWNlLCAkY291bnQpewoJCSR0aGlzLT5lYW4gPSAkZWFuOwoJCSR0aGlzLT5wcm9kdWN0UHJpY2UgPSAkcHJpY2U7CgkJJHRoaXMtPnByb2R1Y3RDb3VudCA9ICRjb3VudDsKCX0KCQogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRwcm9wZXJ0eSkgewogICAgICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCR0aGlzLCAkcHJvcGVydHkpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPiRwcm9wZXJ0eTsKICAgICAgICAgICAgfQogICAgfQoKfQoKCmZ1bmN0aW9uIHJlbW92ZWR1cGxpY2F0ZUtleXMoJGRhdGEpewogICAgJHRtcCA9IFtdOwogICAgZm9yKCRpPTA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrKXsKICAgIAlpZighYXJyYXlfa2V5X2V4aXN0cygkZGF0YVskaV1bImVhbiJdLCAkdG1wKSkgewogICAgCQkkdG1wWyRkYXRhWyRpXVsiZWFuIl1dID0gJGRhdGFbJGldOwogICAgCX0gZWxzZSBpZiAoJGRhdGFbJGldWyJwcm9kdWN0Q291bnQiXSA8ICR0bXBbJGRhdGFbJGldWyJlYW4iXV1bInByb2R1Y3RDb3VudCJdKXsKICAgIAkJJHRtcFskZGF0YVskaV1bImVhbiJdXVsicHJvZHVjdENvdW50Il0gPSAkZGF0YVskaV1bInByb2R1Y3RDb3VudCJdOwogICAgCX0KICAKCQogICAgfQogICAgCiAgICAkcHJvZHVjdHMgPSBbXTsKICAgICBmb3JlYWNoKCR0bXAgYXMgJHApewogICAgICAgICBhcnJheV9wdXNoKCRwcm9kdWN0cywgbmV3IFByb2R1Y3QoJHBbImVhbiJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcFsicHJvZHVjdFByaWNlIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwWyJwcm9kdWN0Q291bnQiXSkpOwogICAgIH0KICAgIAogICAgICAKICAgcmV0dXJuICRwcm9kdWN0czsKfQoKCi8vICRhcnIgPWFycmF5KCAKLy8gIjAiID0+IEFycmF5Ci8vICgKLy8gICAgICJlYW4iID0+IDY5MDA1MzI2MTUwNjksCi8vICAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAovLyAgICAgInByb2R1Y3RDb3VudCIgPT4gNQovLyApLAovLyAiMSIgPT4gQXJyYXkKLy8gKAovLyAgICAgImVhbiIgPT4gNjkwMDUzMjYxNTA2OSwKLy8gICAgICJwcm9kdWN0UHJpY2UiID0+IDExNDAsCi8vICAgICAicHJvZHVjdENvdW50IiA9PiA1MAovLyApLAovLyAiMiIgPT4gQXJyYXkKLy8gKAovLyAgICAgImVhbiIgPT4gNjkwMDUzNTM2NDEyMiwKLy8gICAgICJwcm9kdWN0UHJpY2UiID0+IDExNDAsCi8vICAgICAicHJvZHVjdENvdW50IiA9PiA1MAovLyApLAoKLy8gIjMiID0+IEFycmF5Ci8vICgKLy8gICAgICJlYW4iID0+IDY5MDA1MzI2MTUwNjksCi8vICAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAovLyAgICAgInByb2R1Y3RDb3VudCIgPT4gMTAsCi8vICkpOwokYXJyID1hcnJheSggCiIwIiA9PiBBcnJheQooCiAgICAiZWFuIiA9PiA2OTAwNTMyNjE1MDY5LAogICAgInByb2R1Y3RQcmljZSIgPT4gMTE0MCwKICAgICJwcm9kdWN0Q291bnQiID0+IDEwLAopLAkKIjEiID0+IEFycmF5CigKICAgICJlYW4iID0+IDY5MDA1MzI2MTUwNjksCiAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAogICAgInByb2R1Y3RDb3VudCIgPT4gNTAKKSwKIjIiID0+IEFycmF5CigKICAgICJlYW4iID0+IDY5MDA1MzUzNjQxMjIsCiAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAogICAgInByb2R1Y3RDb3VudCIgPT4gNTAKKSwKIjMiID0+IEFycmF5CigKICAgICJlYW4iID0+IDY5MDA1MzUzNjQxMjIsCiAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAogICAgInByb2R1Y3RDb3VudCIgPT4gNTAwCiksCiI0IiA9PiBBcnJheQooCiAgICAiZWFuIiA9PiA2OTAwNTM1MzY0MTIyLAogICAgInByb2R1Y3RQcmljZSIgPT4gMTE0MCwKICAgICJwcm9kdWN0Q291bnQiID0+IDAKKSwKIjUiID0+IEFycmF5CigKICAgICJlYW4iID0+IDY5MDA1MzI2MTUwNjksCiAgICAicHJvZHVjdFByaWNlIiA9PiAxMTQwLAogICAgInByb2R1Y3RDb3VudCIgPT4gMTAsCikpOwoKcHJpbnRfcihyZW1vdmVkdXBsaWNhdGVLZXlzKCRhcnIpKTs=