Php 压缩多个else if语句,从表中引用它们?

Php 压缩多个else if语句,从表中引用它们?,php,if-statement,Php,If Statement,您好,我将在我的代码(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; pr

您好,我将在我的代码(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?

为什么不在所有
if else
s
的末尾打印
rgb

坦率地说,您的语法非常糟糕,这根本不是有效的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']
为什么不在所有
的末尾打印
rgb
,如果有其他
s

坦率地说,您的语法非常糟糕,这根本不是有效的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']

您最好将该数据(颜色名称到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];
}

最好将该数据(颜色名称到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];
}

您应该使用数组

$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];

您应该使用数组

$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];

呃,你所有的if语句都以分号结尾?嗨,我只是想让大家明白,我刚刚在现场输入了这段代码,显然不是PHP,变量不仅仅是颜色,它们实际上是产品ID,然后是杂货。ID都是十六进制的。。。这只是为了演示,谢谢。此外,我还使用CSV,无数组等。呃,你所有的if语句都以分号结尾?嗨,我只是想让大家明白,我刚刚在现场输入了这段代码,显然不是PHP,变量不仅仅是颜色,它们实际上是产品ID,然后是杂货。ID都是十六进制的。。。这只是为了演示,谢谢。此外,我还使用CSV、无数组等。谢谢,我重视您的回复,但这不仅仅是针对PHP,我通常谈论的是条件语句。谢谢,我重视您的回复,但不仅仅是针对PHP,我通常谈论的是条件语句。Hrm,我在数据库中看到了您的观点,但与CSV相比有明显的优势吗?我对MySQL一无所知。在速度/带宽方面呢?谢谢,这是我正在寻找的答案,希望它能起作用!其优点是,使用CSV可以将PHP转换为“数据库”——每次发出请求时都将所有数据加载到内存中。这就是数据库的用途,这就是数据库的高效之处。除非您的数据集很小,否则使用数据库存储信息会更快(说到脚本执行时间)。Hrm,我在数据库中看到了您的观点,但是与CSV相比有明显的优势吗?我对MySQL一无所知。在速度/带宽方面呢?谢谢,这是我正在寻找的答案,希望它能起作用!其优点是,使用CSV可以将PHP转换为“数据库”——每次发出请求时都将所有数据加载到内存中。这就是数据库的用途,这就是数据库的高效之处。除非数据集很小,否则使用数据库存储信息会更快(说到脚本执行时间)。