您好我要在我的代码(PHP)中输入大约500个if语句,每个语句具有完全相同的编码:
if (color=White);
rgb = 255-255-255;
print rgb;
else if (color=Black);
rgb = 0-0-0;
print rgb;
else if (color=Red);
rgb = 255-0-0;
print rgb;
else if (color=Blue);
rgb = 0-0-255;
print rgb;
[the list keeps going]
我也(幸运的是)有一个表显示第一列中的颜色,下一列显示其中500个的rgb值...如何使用它来节省键入所有其他if语句的时间?一些我如何引用表文件(在excel中制作,我猜我必须将它保存为.csv?)
答案 0 :(得分:3)
最好的办法是将数据(颜色名称为RGB值)放入数据库,然后执行:
SELECT rgb FROM colors WHERE color = 'red';
如果您无法建立数据库,则可以使用fgetcsv()
并将CSV数据读入数组。然后输出:
echo $colors[$color];
要将CSV文件读入数组,请使用以下内容:
//assuming the first field is color and the second rgb
$fh = fopen($file, 'r');
while (($row = fgetcsv($fh)) !== FALSE) {
$colors[$row[0]] = $row[1];
}
答案 1 :(得分:1)
为什么不在所有rgb
的结束上打印if-else
?
坦率地说,你的语法是可怕的,这根本不是有效的PHP。
此外,您应该使用echo
,而不是print
。
if ($color=='White')
$rgb = '255-255-255';
else if ($color=='Black')
$rgb = '0-0-0';
else if ($color=='Red')
$rgb = '255-0-0';
else if (color=='Blue')
$rgb = '0-0-255';
[the list keeps going]
echo $rgb;
我要做的是将键值对存储在这样的数组中:
$colors = array( 'white' => '255-255-255', 'black' => '0-0-0', 'blue' => '0-0-255' );
然后,您可以通过提供键来访问数组中的RGB值,即颜色字符串:$blueRGB = $colors[ 'blue' ];
答案 2 :(得分:0)
你应该使用数组。
$colors = array(
'white' => '255-255-255',
'black' => '0-0-0',
// etc.
);
echo $colors[$color];
如果您有CSV文件,则可以使用fgetcsv
。
$colors = array();
$handle = fopen('colors.csv', 'r');
while ($row = fgetcsv($handle, 10000))
$colors[$row[0]] = $row[1];
echo $colors[$color];