2010-05-09 3 views
1

안녕하세요 다른 500을 입력하려고 해요 경우 각 코딩 동일한이 내 코드 (PHP)에 문 :여러 개의 else 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] 

열 및 그 다음 열의 rgb 값을 500 개로 나누십시오 ... 어떻게하면 else 문을 모두 입력하여 시간을 절약 할 수 있습니까? 나는 테이블 파일 참조해야 할 몇 가지 방법 (내가 추측하고있어 Excel에서 만든을 나는 .CSV 파일로 저장해야합니다?)

+3

Erm, 모든 if 문은 세미콜론으로 끝납니다. – BalusC

+0

안녕하세요, 모든 사람들이 방금이 코드를 입력했음을 분명히 밝히고 싶습니다. 분명히 PHP가 아니며 변수는 색상이 아니라 제품 ID와 식료품 점입니다. 목. ID는 모두 16 진수입니다 ... 이것은 데모 용입니다. 고마워요. 또한 CSV, 배열 등을 사용하고 있습니다. – Haskella

답변

3

가장 좋은 방법은 바로 수행 데이터베이스로 데이터 (RGB 값으로 색 이름)을 넣어하는 것입니다

SELECT rgb FROM colors WHERE color = 'red'; 

데이터베이스를 만들 수없는 경우 fgetcsv()을 사용하고 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]; 
} 
+0

으흠, 데이터베이스에 귀하의 요지를 보았지만 CSV보다 확실한 이점이 있습니까? 나는 MySQL에 대한 지식이 전혀 없다. 속도/대역폭면에서 어떻습니까? 감사합니다. 제가 찾고있는 답변입니다, 잘하면 그것이 작동합니다! – Haskella

+0

이점은 CSV를 사용하면 PHP를 '데이터베이스'로 전환하는 것입니다. 요청이있을 때마다 모든 데이터를 메모리에로드합니다. 그것이 바로 데이터베이스가하는 것입니다. 바로 데이터베이스가 효율적입니다. 데이터 세트가 작지 않다면, 데이터베이스를 사용하여 정보를 저장하는 것이 더 빠릅니다 (스크립트 실행 시간 말하기). –

1

왜 당신이 인쇄되지 않습니다 rgb을 모두의 if-else s?

사실, 구문은 끔찍한이며, 유효하지는 않습니다. 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' ];

+1

답장을 보내 주시면 감사하겠습니다 만, PHP 만있는 것이 아닙니다. 일반적으로 조건문을 말하는 것입니다. – Haskella

0

:

echo $colors[$color]; 

은 CSV가 배열로 파일을 읽으려면, 같은 것을 사용합니다.

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

답장을 보내 주셔서 감사합니다. – Haskella

관련 문제