데이터를 읽고 사용해야하는 텍스트 파일이 있습니다.
3
sam 99912222
tom 11122222
harry 12299933
sam
edward
harry
다음 형식으로 이러한 문자열 배열을 어떻게 만들 수 있습니까?
array(
"name" => "number"
...
)
나는 이것을 시도했다 :
$handle = fopen("file.txt", "r");
fscanf($handle, "%d %d", $name, $number);
그럼 뭐야? 내가 무엇을 시도하든 첫 번째 줄에서만 작동합니다.
sam 99912222
두 가지 유형의 출력을 모두 갖도록 코드를 추가했습니다. 이름-값 쌍이없는 줄은 무시하고 포함합니다. 아래에서 확인하세요
name
및 value
( something[space]something)
) 가 모두있는 코드 만 가져옵니다 .
//$lines = ... each line of the file in an array
$vals = array();
foreach($lines as $v){
$tmp = explode(' ', $v);
if(count($tmp) > 1){
$vals[trim($tmp[0])] = trim($tmp[1]); // trim to prevent garbage
}
}
print_r($vals);
다음과 같이 출력됩니다.
Array
(
[sam] => 99912222
[tom] => 11122222
[harry] => 12299933
)
쌍으로 오지 않더라도 값이 필요하면 다음과 같이하십시오.
//$lines = ... each line of the file
$vals = array();
foreach($lines as $v){
$tmp = explode(' ', $v);
$name = '';
$number = '';
$tmp[0] = trim($tmp[0]);
if(count($tmp) > 1){
$name = $tmp[0];
$number = trim($tmp[1]);
}else{
if(is_numeric($tmp[0])){
$number = $tmp[0];
}else{
$name = $tmp[0];
}
}
$vals[] = array(
'name' => $name,
'number' => $number
);
}
print_r($vals);
그리고 출력 :
Array
(
[0] => Array
(
[name] =>
[number] => 3
)
[1] => Array
(
[name] => sam
[number] => 99912222
)
[2] => Array
(
[name] => tom
[number] => 11122222
)
[3] => Array
(
[name] => harry
[number] => 12299933
)
[4] => Array
(
[name] => sam
[number] =>
)
[5] => Array
(
[name] => edward
[number] =>
)
[6] => Array
(
[name] => harry
[number] =>
)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다