simple, i have array like that
$matches = array(
array('255', '000', '000',), //red // (r,g,b,hex equivalent);
array('000', '255', '000'), //green
array('000', '000', '255'), //blue
array('0', '255', '255'), //cyan
array('117', '076', '036'), //brown
array('000', '000', '000'), //black
array('208', '208', '208'), //grey
array('247', '148', '029'), //orange
array('244', '154', '193'), //pink
array('255', '255', '000'), //yellow
array('102', '045', '145'), //purple
array('255', '255', '255') //white
);
and then i have variable
$a= "42, 53, 86"; // blue
$b= "17, 50, 147"; // blue
my question, how make a function if have many variant R G B color just show one group like as RED, GREEN, BLUE, CYAN, BROWN, BLACK , GREY, ORANGE, PINK, YELLOW, PURPLE, WHITE
i search find this function but not working
$matches = array(
array('255', '000', '000',), //red // (r,g,b,hex equivalent);
array('000', '255', '000'), //green
array('000', '000', '255'), //blue
array('0', '255', '255'), //cyan
array('117', '076', '036'), //brown
array('000', '000', '000'), //black
array('208', '208', '208'), //grey
array('247', '148', '029'), //orange
array('244', '154', '193'), //pink
array('255', '255', '000'), //yellow
array('102', '045', '145'), //purple
array('255', '255', '255') //white
);
function closestColor($R, $G, $B, $matches) {
$closest = array(255*3, 0, 0, 0);
foreach($matches as $color => $byte) {
$diff = abs($byte[0] - $R) + abs($byte[1] - $G) + abs($byte[2] - $B);
if ($closest[0] > $diff) {
$closest = array($sum_diff, $byte[0], $byte[1], $byte[2]);
}
}
return $closest;
}
print_r(closestColor(240,192,224,$matches));