2011-09-08 2 views
0

У меня есть следующий CSV файл:Чтение определенного значения CSV в PHP

08-0018421032;00-0018151831;G-20009429-0;G-20009429-0;0374048-0 
27-0018421;10-0018151831;G-30009429-0;G-50009429-0;7374048-0 
36-0018421033232;20-0018151831;G-40009429-0;G-60009429-0;8374048-0 

Как вы можете видеть разделитель является; символ.

Затем я отправляю эту информацию на php через плагин jquery, который отлично работает, так как я могу прочитать файл на PHP. Следующий код захватывает файл CSV (который является переменным $ csvfile), и я могу видеть линии в нем:

$file = fopen("upload/$csvfile", "r"); 
while (!feof($file)) { 
$line = fgetcsv($file, 1024,';'); 
print $line[0].'<br/>'; 
} 
fclose($file); 

Что мне нужно, чтобы иметь возможность выбрать не только линию, но на значении в нем , Чтобы перейти к определенному значению, например, в первой строке, третье значение будет G-20009429-0, и я бы назначил это переменной php, которая будет использоваться позже.

Прямо сейчас я понятия не имею, как захватить определенное значение в строке, а также при печати строки $ [0] оно отображает значения в вертикальном порядке вместо горизонтального порядка. Что я имею в виду в том, что он показывает следующий вывод:

00-0018151831 
10-0018151831 
20-0018151831 

Вместо того, чтобы показать мне, как это:

08-0018421032;00-0018151831;G-20009429-0;G-20009429-0;0374048-0 

Может быть, это сон, но я застрял здесь. Чтобы повторить, файл csv читается Php правильно, так как я могу сделать print_r на нем, и он отображает все строки в нем. Дело в том, как манипулировать информацией после того, как у меня есть csv и как захватить определенное значение в определенной строке. Спасибо.

+0

Если все, что вы хотите, это сама строка, почему вы используете 'fgetcsv()'? –

ответ

1

$line - это массив, содержащий все элементы из этой строки. $line[0] - это первый элемент строки, $line[1] второй элемент и так далее. Попробуйте var_dump($line). Вы делаете вывод каждого первого элемента каждой строки.

Если вы хотите вывести каждый элемент в одной строке, сцепить массив снова:

echo join(';', $line); 

Но тогда, что не хватает точки fgetcsv, который специально услужливо разделяющую эти элементы в массив для вас, так вы можете работать с ними.

+0

Спасибо. Хорошо объяснил. –

Смежные вопросы