просто, у меня есть такой массив
$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
);
и тогда у меня есть переменная
$a= "42, 53, 86"; // blue
$b= "17, 50, 147"; // blue
мой вопрос, как сделать функцию, если есть много вариантов цвета R G B просто показать одну группу, как красный, зеленый, синий, голубой, коричневый, черный, серый, оранжевый, розовый, желтый, пурпурный, белый
Я ищу найти эту функцию, но не работает
$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));
Задача ещё не решена.
Других решений пока нет …