2012-04-10 3 views
0

두 세트의 코드가 있습니다. 둘 다 자체적으로 작동하지만 둘을 결합해야합니다. 해.PHP : 두 세트의 코드를 하나로 결합하십시오 (특정 방식으로 텍스트 파일을 표시하기 위해)

최종 결과는 텍스트 파일을 배열별로 #, 알파벳순으로 표시해야하므로 배열 번호는 각 줄의 끝 부분에 표시되어야합니다. 코드의

<?php 
$filename="users.txt"; 
$lines = array(); 
$file = fopen($filename, "r"); 

while(!feof($file)) { 
    $lines[] = fgets($file,4096); 
} 

natcasesort($lines); 
$text = implode("<br />", $lines); 
print_r($text); 

fclose ($file); 
?> 

SECOND PIECE 코드의

FIRST PIECE은

<?php 
$lines = file('users.txt'); 
foreach ($lines as $line_num => $line) 
{ 
print "<font color=red>Line #{$line_num}</font> : " . $line . "<br />\n"; 
} 
?> 
+0

변수 이름을 변경해 보셨습니까? -_- – Matthematics

답변

0

이 작업을 수행하려면 두 가지 쉬운 방법이 있습니다. 이 사람은 PHP> = 5.4.0을 위해 작동합니다

$lines = file('users.txt'); 
asort($lines, SORT_NATURAL | SORT_FLAG_CASE); // natcasesort that preserves keys! 

foreach ($lines as $num => $line) { 
    printf("%s (line #%d)<br>", $line, $num); 
} 

을 이전 버전을 사용하는 경우, 당신은 uasortstrnatcasecmp와 같은 효과를 얻을 수 있습니다

$lines = file('users.txt'); 
uasort($lines, 'strnatcasecmp'); // natcasesort that preserves keys 

// the loop is the same 

See it in action합니다.

두 경우 모두 색인 연관을 유지하는 정렬 함수를 사용하여 줄을 정렬 한 후에 원래의 키 (파일의 줄 번호)로 색인을 생성합니다. usortuasort 모두 이렇게합니다. uasort은 사용자가 직접 정렬 비교 함수를 지정할 수있게 해주는 반면 usort은 몇 가지 기본 옵션 (PHP < 5.4의 자연 정렬을 포함하지 않음) 만 허용합니다.

제쳐두고 : 하시기 바랍니다<font> 태그를 다시 사용하지 마십시오.

+0

이전 버전이므로 2 번째 버전이 효과가있었습니다. line # color를 red로 바꾸는 것도 가능합니까? 나는 이것을 Line # {$ line_num}에 추가하는 방법을 모른다. 그래서 다른 곳에서 스크립트를 얻었으므로, 스타일 시트를 사용하여 글꼴 색상을 변경해야한다. 아니면 뭔가 다른 것을 의미합니까? –

+0

@KGreen : ' xx'과 같은 간단한 내용이 있지만 CSS 참조를 살펴 보겠습니다. – Jon