У меня есть простой html dom-запрос, который считывает информацию из источника футбольных украшений, а также загружаю также источник json.В: Как я могу объединить эти два цикла foreach
Вот мой полный код:
<?php
header('Content-Type: text/html; charset=utf-8');
ini_set("user_agent", "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17");
include_once('simple_html_dom.php');
ini_set('display_errors', true);
error_reporting(E_ALL);
$str = file_get_contents('general.json');
$json = json_decode($str,true);
$filename = "source.html";
$html = file_get_html($filename);
class matches {
var $day;
var $kickofftime;
var $result;
function matches ($day, $kickofftime, $tip){
$this->day=$day;
$this->kickofftime=$kickofftime;
$this->result=$result;
return $this;
}
}
$i=0;
$day=$html->find('h1',0);
$day->plaintext;
$day=str_replace("<h1>TODAY FOOTBALL FIXTURES: ","", $day);
$day=str_replace("</h1>","", $day);
$matchday = str_replace(array('MONDAY ', 'TUESDAY ', 'WEDNESDAY ', 'THURSDAY ', 'FRIDAY ', 'SATURDAY ', 'SUNDAY '), '', $day);
$matchday=str_replace(" ","-", $matchday);
$matchday=date('Y-m-d', strtotime($matchday));
foreach($html->find('table.fixtures') as $matches)
{
foreach ($matches->find('tr[class=a1],tr[class=a2]') as $matchesTR) {
$kickofftime=$matchesTR->find('td[class=a11],td[class=a21]',0)->plaintext;
$kodate = date('Y-m-d H:i:s', strtotime("$matchday $kickofftime +1 hour"));
$result=$matchesTR->find('td');
echo $kodate;
echo $result[6]->plaintext.'<br>' ;
$i++;
}
}
//Here is the 2nd foreach with the data of JSON source:
foreach($json as $key => $value) {
$value = json_decode($value, true);
echo $value["country"] . ", " . $value["competition"] . " " . $value["club"] . "<br>";
}
// clean up memory
$html->clear();
unset($html);
?>
Текущие результаты от простого источника HTML DOM HTML:
2014-12-23 20:00:00 2-1
2014- 12-23 11:00:00 3-1
2014-12-26 08:00:00 1-1
результат от источника JSON:
Америка Copa America Boca Juniors
Европа Бундеслига Ганновер
Азия JLeague Нагоя
Я хотел бы объединить эти два результата в одном Еогеасп, и я хотел бы получить этот результат:
2014-12-23 20:00:00 2-1 Америка Копа Америка Бока Юниоры
2014-12-23 11:00:00 3-1 Европа Бундеслига Ганновер
2014-12-26 08:00:00 1-1 Азия JLeague Nagoya
Я надеюсь, что есть какой-то эксперт, который может помочь мне, потому что я пробовал много вариаций, но без результата. Я получил несколько советов (с кодом) от экспертов, но каждый раз возникали ошибки. С моим кодом нет ошибки, но мне нужно другое решение, потому что я хотел бы поставить все переменные в один foreach. Большое спасибо, я надеюсь, что кто-то может помочь мне с кодом, потому что я не на высоком уровне на php. Еще раз спасибо!
Я хотел бы поставить два foreach в один foreach, но я не хочу создавать новый массив, потому что мне не нужно.
Что связывает два набора данных друг с другом? Значения связаны только с их индексами в каждом массиве (т. Е. Первый элемент в первом массиве идет с первым элементом второго массива, второй элемент идет со вторым элементом и т. Д.)? – showdev
последовательность полностью та же, html-источник (это таблица с светильниками), строка 1 - пара первого элемента json, строка источника 2 html.является второй частью json. Я думаю, что только дата времени запуска анализируется из заголовка таблицы html. –
Возможный дубликат [как объединить два массива с PHP?] (Http://stackoverflow.com/questions/7473851/how-do-i-concatenate-two-arrays-with-php) – showdev