Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Чтение из файлов данных в виде массива


Автор: OrkZ 29.3.2010, 06:12
есть файлы а кпримеру 
1.txt
2.txt
3.txt
в каждом из них записан массив

как считать всю нформацию из них и собрать в один массив?

пробовал так
Код

$f5 = @file($files);
for($i5=0;$i5<count($f5);$i5++)
{
$content[]=$f5[$i5];
}

получается масив с масивами :(

Автор: MoLeX 29.3.2010, 06:46
array_merge()

Автор: OrkZ 29.3.2010, 07:15
array_merge($massiv1,$massiv2);  в моем случае я даже немогу воткнутся с этой функцией, на пальцах покажи.

Автор: Photon 29.3.2010, 10:16
OrkZ,  а массив-то в файлах в каком виде записан?

Автор: OrkZ 29.3.2010, 11:35
массив как массив, в сериализированном виде одной строкой. 

Автор: patap 29.3.2010, 12:29
Цитата

массив как массив, в сериализированном виде одной строкой. 


массив в сериализированном виде - это просто строка. Чтобы его использовать как массив его, наверное, нужно привести к нужному виду?

Автор: Sanchezzz 29.3.2010, 14:19
Код

<?
function file_read_array($file){
(array)$content; 
$farray = file($file);
for($i=0;$i<count($farray);$i++){
    $content[$i] = $farray[$i];
}
return $content;
}
// ПРИМЕР
$a1 = file_read_array('log1.txt');
$a2 = file_read_array('log1.txt');
$content = array_merge( $a1 , $a2 );
print '<pre>';
print_r($content);
print '</pre>';
?>


тебе так надо?

Автор: OrkZ 30.3.2010, 01:34
Цитата(Sanchezzz @  29.3.2010,  14:19 Найти цитируемый пост)
тебе так надо? 

ну пракимчески.

вот только грабли у меня в другом месте стоят

я массив могу получить (кстати спасибо за функцию file_read_array), а вот когда

Цитата(Sanchezzz @  29.3.2010,  14:19 Найти цитируемый пост)
// ПРИМЕР
$a1 = file_read_array('log1.txt');
$a2 = file_read_array('log1.txt');
$content = array_merge( $a1 , $a2 );
print '<pre>';
print_r($content);
print '</pre>';


становится ясным несостоятельность задумки, потому как файлов больше чем два, и вот тут возникает сеть вопроса как мне эти самые массивы из файлов собрать во едино.

Автор: Sanchezzz 30.3.2010, 06:42
по очереди 

Код

$a1 = file_read_array('log1.txt');
$a2 = file_read_array('log2.txt');
$a3 = file_read_array('log3.txt');
$a4 = file_read_array('log4.txt');

$content = array_merge( $a1 , $a2 );
$content = array_merge( $content, $a3 );
$content = array_merge( $content, $a4 );

или допустим ты получил список файлов в масив $array_files тебе их нужно слить в один.
Код

$array_files = array(0=>'log1.txt' , 1=>'log2.txt' , 2=>'log3.txt');
$content = array();
foreach($array_files as $item):
 $arraytmp = file_read_array($item);
 $content = array_merge($content ,$arraytmp);
endforeach;

Из масиво обратно просто в файл.
Код

$txtFILE = '';
$path = 'fulltxt.txt';
foreach($content as $item):
  $txtFILE.= $item . "\n";
endforeach;
if($file = fopen($path, "w+")){
  fwrite($file, $txtFILE);
fclose($file);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)