Вывод двух массивов построчно.

Vlad435

Новичок
Всем привет!
Нужна помощь!
Считываю из файлов в папке названия статей и тексты в два разных массива.
Данные выводятся сейчас так: вначале все названия, а потом все тексты.
А мне нужно название1, текст1, название2, текст2
Заранее спасибо!
Код:
  $dir = ".";
  $dir = opendir($dir);
 
  while($file = readdir($dir)){
      $array = file("$file"); 
$string = implode("", $array);
      preg_match("@.*?<div align=\"right\" class=\"blackhd\">(.*?)</div>.*?@msi", $string,$res);
      preg_match("@.*?<h3>(.*?)<!--#include virtual=\"footer\"-->.*?@msi", $string,$res1);

echo $res[1],$res1[1];
  }
 

daniyorik

Новичок
попробуй следующим образом сделать,
распарси массивы, сформируй новый двумерный массив
к примеру вот так
$string1 = "1, 2, 3, 4";
$arrayString = explode(",", $string1); //сформировал массив
$string2 = "5,6,7,8";
$arrayString2 = explode(",", $string2);// второй массив
$array = array();
for($i=0; count($arrayString)>$i; $i++){

$array[$i]['first'] = $arrayString[$i];
$array[$i]['second'] = $arrayString2[$i];

}
ну потом можешь с помощью foreach вывести это все дело на экран
 

Vlad435

Новичок
попробуй следующим образом сделать,
распарси массивы, сформируй новый двумерный массив
к примеру вот так
$string1 = "1, 2, 3, 4";
$arrayString = explode(",", $string1); //сформировал массив
$string2 = "5,6,7,8";
$arrayString2 = explode(",", $string2);// второй массив
$array = array();
for($i=0; count($arrayString)>$i; $i++){

$array[$i]['first'] = $arrayString[$i];
$array[$i]['second'] = $arrayString2[$i];

}
ну потом можешь с помощью foreach вывести это все дело на экран
Спасибо, но я ничего не понял.
Что обозначают строки $string1 = "1, 2, 3, 4"; и $string2 = "5,6,7,8"; ?
 

AnrDaemon

Продвинутый новичок
Это я не понял, зачем ты в ДВА РАЗНЫХ массива читаешь.
 

daniyorik

Новичок
Вообще можно как сказали выше изначально собрать в 1 массив,
$string1 = "1, 2, 3, 4"; и $string2 = "5,6,7,8"; - 1 стринг к примеру это названия, второй стринг это текст, если они все находятся по порядку то все сойдется
ну а так
 

Vlad435

Новичок
Вообще можно как сказали выше изначально собрать в 1 массив,
$string1 = "1, 2, 3, 4"; и $string2 = "5,6,7,8"; - 1 стринг к примеру это названия, второй стринг это текст, если они все находятся по порядку то все сойдется
ну а так
Вот я убрал лишнее и обьединил массивы. Но как выводить поотдельности не понимаю. Вопрос именно в этом.
Код:
  $dir = ".";
  $dir = opendir($dir);
  while($file = readdir($dir)){
      $string = file_get_contents("$file");
      preg_match("@.*?<div align=\"right\" class=\"blackhd\">(.*?)</div>.*?@msi", $string,$res);
      preg_match("@.*?<h3>(.*?)<!--#include virtual=\"footer\"-->.*?@msi", $string,$res1);

unset ($res[0]);
unset ($res1[0]);

$c = array_merge($res,$res1);
echo $c[0],$c[1];

}
 

daniyorik

Новичок
в плане выводить по отдельности?
Хочешь чтобы было
title1 title2
text1 text2 ??
Если да, то юзай foreach()
парсишь на ключ значение, выводишь значения,
 

daniyorik

Новичок
В общем добавь мой код в нотпад,
и пропиши print_r($array);
суть в том что вместо моих значений в массиве могут быть твои, вывести на экран не проблема опять же
 

Vlad435

Новичок
в плане выводить по отдельности?
Хочешь чтобы было
title1 title2
text1 text2 ??
Если да, то юзай foreach()
парсишь на ключ значение, выводишь значения,
Да, хочу иметь возможность выводить title1 потом вставлять нужные мне тэги, потом text1. и тд.
Я не знаю как использовать foreach(), поэтому и спрашиваю.
 

Vlad435

Новичок
В общем добавь мой код в нотпад,
и пропиши print_r($array);
суть в том что вместо моих значений в массиве могут быть твои, вывести на экран не проблема опять же
Вот твой код совмещенный с моим
Код:
$dir = ".";
  $dir = opendir($dir);
  while($file = readdir($dir)){
      $array = file("$file");
$string = implode("", $array);
      preg_match("@.*?<div align=\"right\" class=\"blackhd\">(.*?)</div>.*?@msi", $string,$res);
      preg_match("@.*?<h3>(.*?)<!--#include virtual=\"footer\"-->.*?@msi", $string,$res1);


$arrayString = explode(",", $res); //сформировал массив

$arrayString2 = explode(",", $res1);// второй массив
$array = array();
for($i=0; count($arrayString)>$i; $i++){

$array[$i]['first'] = $arrayString[$i];
$array[$i]['second'] = $arrayString2[$i];

}


print_r($array);
  }
а вот результат
Код:
Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) ) Array ( [0] => Array ( [first] => Array [second] => Array ) )
Это не то что мне нужно
 

daniyorik

Новичок
Смотри, крч у тебя первый шаг, это название 1 + текст 1
пишешь,
foreach($array as $key=>$value){ //$value содержит в себе ключи first, second
?>
<b><?=$value['first'];?></b>
<b><?=$value['second'];?></b> // = - сокращенное написание echo
<?
}
таким образом все данные с помощью этого кода будут циклично выводиться, при этом тебе надо будет только выбрать нужные теги, и в стилях уже редактировать, будет применяться ко всем выведенным данным в цикле

P.S. можно меня ударить палкой за мешанину кода с html
 

daniyorik

Новичок
и эт, подредактируй код слегка, чтобы в ячейки first и second записывались не array а данные которые тебе нужны, а то ересь получается)
 

daniyorik

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

Vlad435

Новичок
и еще оговорка, у тебя изначально для explode должна идти строка,а не массив который ты создал, сформируй строку, либо изначально все в 1 файле сделай в 1 массив,
юзай связи, если эти данные из бд тянутся.
Данные считываются из файлов. В седьмом сообщении я написал код с одним массивом. Он не подходит?
 

daniyorik

Новичок
получается так, у тебя есть массив с названиями и текстом,
если есть пары ключ - значение , то
foreach $твой массив as $ключ => $значение
если нет пар ключ - значение, то
foreach $твой массив as $значение

распечатай через print_r массив который ты сформировал, покажи,
 

Vlad435

Новичок
получается так, у тебя есть массив с названиями и текстом,
если есть пары ключ - значение , то
foreach $твой массив as $ключ => $значение
если нет пар ключ - значение, то
foreach $твой массив as $значение

распечатай через print_r массив который ты сформировал, покажи,
Вот что получается когда печатаю через print_r массив из 7го сообщения
Array ( ) Array ( ) Array ( [0] => Ricardo Villalobos ) Array ( [0] => Creme de Menthe, Mariel Ito, Ready Made FC, Dub Tractor,… ) Array ( [0] => ЧАСТЬ ВТОРАЯ
The Knife,Chicken Lips, Daniel Meteo, Jimmy Edgar, Kaito… ) Array ( [0] => Женская Электроника
Sophie Rimheden, ADA, Dj Chloe ) Array ( [0] => Shinto, Schneider TM, DAT Politics, The Lotterboys,
Anthony Rother ) Array ( [0] => Phoenix, Motor, PSAPP, Alexi Delano, Terence Fixmer ) Array ( [0] => DK7, Holger Flinsch, Turner, Richie Hawtin, John Dahlback,
Coloma, Heiko Laux, Murcof, Bring Back the Buffalo, Jahcoozi ) Array ( [0] => Chelonis R. Jones, T. Raumschmiere, Modeselektor,
Egoexpress, Ivan Smagghe ) Array ( [0] => Richard Davis, Ammer & Console feat Reinhard Furrer,
Vive la Fete, Geiger, Piano Magic ) Array ( [0] => Mugison, Jay Haze, Deadbeat, Juan Atkins, Xlover ) Array ( [0] => Jori Hulkkonen, Fischerspooner, Bright Eyes, Italcimenti, MU ) Array ( [0] => Damian Lazarus, Masha Qrella, Mount Sims ) Array ( [0] => Markus Guentner, Maximilian Hecker, KLEE ) Array ( [0] => QUARKS, SOLDOUT ) Array ( [0] => Deepmix Moscow Radio ) Array ( [0] => Underground Stars of France
(Часть 1) ) Array ( [0] => Underground Stars of France
(Часть 2) ) Array ( [0] => Rework, TIGA, Sami Koivikko ) Array ( [0] => Max Mohr, Abe Dugue ) Array ( [0] => Namosh, Unai, The Presets ) Array ( [0] => A Guy Called Gerald, The Remote, Sergej Auto ) Array ( [0] => Junior Boys, The Rapture ) Array ( [0] => «Аргентинцы пришли, здрасьте, куда положить сомбреро» ) Array ( [0] => Dave Shokn, Snax ) Array ( [0] => Louie Austen, Silicone Soul, Northern Lite ) Array ( [0] => D.Diggler, Dani Siciliano, Luomo, Phantom/Ghost [1] => D.Diggler

дальше идут длинные тексты по очереди
 

daniyorik

Новичок
жутко как то смотрится, ну да ладно, в общем, засунь названия в строку, есть такой типа данных string называется, все названия через запятую, затем также поступи с текстом, затем примени мой код, и у тебя должно получиться
ты можешь взять первый массив сформировать из массива строку, затем взять второй массив и из него сформировать также, затем с помощью explode превратить в массив из строки,и с помощью for объединить в массив, далее с помощью foreach вывести это все дело на экран, хотя я не видел твоего кода, вероятнее всего можно сделать как то проще, но я наверное так бы и поступил
 

Vlad435

Новичок
жутко как то смотрится, ну да ладно, в общем, засунь названия в строку, есть такой типа данных string называется, все названия через запятую, затем также поступи с текстом, затем примени мой код, и у тебя должно получиться
ты можешь взять первый массив сформировать из массива строку, затем взять второй массив и из него сформировать также, затем с помощью explode превратить в массив из строки,и с помощью for объединить в массив, далее с помощью foreach вывести это все дело на экран, хотя я не видел твоего кода, вероятнее всего можно сделать как то проще, но я наверное так бы и поступил
Вот мой код, где данные уже в одном массиве.
Код:
  $dir = ".";
  $dir = opendir($dir);
  while($file = readdir($dir)){
      $string = file_get_contents("$file");
      preg_match("@.*?<div align=\"right\" class=\"blackhd\">(.*?)</div>.*?@msi", $string,$res);
      preg_match("@.*?<h3>(.*?)<!--#include virtual=\"footer\"-->.*?@msi", $string,$res1);

unset ($res[0]);
unset ($res1[0]);

$c = array_merge($res,$res1);
echo $c[0],$c[1];

}
Как выводить попочередно из c[0] и $c[1] ?
 
Сверху