Array
(
[0] => Array
(
[name] => grey
[rgb] => rgb(128, 128, 128)
)
[1] => Array
(
[name] => green
[rgb] => rgb(0, 128, 0)
)
[2] => Array
(
[name] => white
[rgb] => rgb(255, 255, 255)
)
[3] => Array
(
[name] => black
[rgb] => rgb(0, 0, 0)
)
)
далее, имеется 2-й массив, одномерный, вида:
$color[] = Array("green","white","black");
так вот, как найти rgb цветов из 2-го массива в 1-м и вывести на экран?
Спустя 14 минут, 59 секунд (19.11.2011 - 03:20) Игорь_Vasinsky написал(а):
для начала сопаставь цвета к одному виду.
а то - есть мыло, искать - в шиле
а то - есть мыло, искать - в шиле
Спустя 5 минут, 9 секунд (19.11.2011 - 03:26) Stasonix написал(а):
Цитата (Игорь_Vasinsky @ 19.11.2011 - 00:20) |
для начала сопаставь цвета к одному виду. а то - есть мыло, искать - в шиле |
если бы так можно было, я бы уже давно так сделал и забыл.
Спустя 15 минут, 24 секунды (19.11.2011 - 03:41) dadli написал(а):
$table = array(
array("name"=>"green","rgb"=>"rgb(0, 128, 0)"),
array("name"=>"white","rgb"=>"rgb(255, 255, 255)"),
array("name"=>"black","rgb"=>"rgb(0, 0, 0)")
);
$color = array("white","black","red");
$arr_color_names = array();
foreach ($table as $key=>$val) {
array_splice($arr_color_names,$key,1,$table[$key]["name"]);
}
$mas2 = array_intersect($arr_color_names,$color);
foreach ($table as $key => $val) {
if (in_array($table[$key]["name"],$mas2)) {
echo $table[$key]["rgb"]."<br>";
}
}
?
Спустя 4 минуты, 39 секунд (19.11.2011 - 03:46) Stasonix написал(а):
Спасибо dadli, зачетные тату!
Спустя 15 минут, 14 секунд (19.11.2011 - 04:01) dadli написал(а):
Stasonix
да незачто
да незачто

Спустя 5 часов, 45 минут, 54 секунды (19.11.2011 - 09:47) Игорь_Vasinsky написал(а):
Цитата |
$table = array( array("name"=>"green","rgb"=>"rgb(0, 128, 0)"), array("name"=>"white","rgb"=>"rgb(255, 255, 255)"), array("name"=>"black","rgb"=>"rgb(0, 0, 0)") ); |

Спустя 1 час, 29 минут, 37 секунд (19.11.2011 - 11:16) sergeiss написал(а):
То есть, у тебя в первом массиве всегда в 'name' имеется четко определенное название, а во втором (одномерном) массиве есть элементы, полностью соответствующие этим названиям? Я правильно понял?
Если "да", то тогда я бы предложил тебе переделать первый массив, заменив ключи на ассоциативные:
Тогда твоя задача решается очень просто :)
Если "да", то тогда я бы предложил тебе переделать первый массив, заменив ключи на ассоциативные:
$rgb_values:
Array
(
[grey] => Array
(
[name] => grey
[rgb] => rgb(128, 128, 128)
)
[green] => Array
(
[name] => green
[rgb] => rgb(0, 128, 0)
)
[white] => Array
(
[name] => white
[rgb] => rgb(255, 255, 255)
)
[black] => Array
(
[name] => black
[rgb] => rgb(0, 0, 0)
)
)
Тогда твоя задача решается очень просто :)
// исходные цвета
$color[] = Array('green','white','black');
// компоненты цветов
$rgb[]=array( $rgb_values['green']['rgb'], $rgb_values['white']['rgb'], $rgb_values['black']['rgb']);