2012-05-30 4 views
-1

У меня есть текстовый файл, который содержит названия компаний и цены. Пример:Чтение текстового файла с использованием PHP

first company name 
2,2 
second company name 
2,7 
third company name 
1,9 

Проблема в том, что я не могу правильно читать и отображать данные. Мой код:

<?php 
$content=file("test_data.txt"); 

foreach ($content as $data) 
{ 
    $data = array(
    'company' => $content[0], 
    'price' => $content[1] 
    ); 
    echo $data['company']; 
    echo "<br>"; 
    echo $data['price']; 
} 
?> 

Что не так? Мне также нужно отправить данные в базу данных SQL, но сначала мне нужно будет прояснить приведенный выше код.

+0

Вы должны сделать некоторые дополнительные исследования на 'foreach', потому что я думаю, вы поняли, как они работают. –

ответ

4

Beacuse file функция возвращает массив строк. И вы зацикливаетесь за строкой, вы должны зацикливать файл по парам строк. Вы можете сделать это следующим образом:

$lines = file("test_data.txt"); 
$data = array(); 
for($i = 0; $i < count($lines); $i += 2) 
{ 
    $pair = array(); 
    $pair['company'] = $lines[$i]; 
    $pair['price'] = $lines[$i + 1]; 
    $data[] = $pair; 
} 

$data массив должен выглядеть примерно так:

Array 
(
    [0] => Array 
     (
      [company] => first company name 
      [price] => 2,2 
     ) 

    [1] => Array 
     (
      [company] => second company name 
      [price] => 2,7 
     ) 

    [2] => Array 
     (
      [company] => third company name 
      [price] => 1,9 
     ) 

)