我已经设法从网站获取我需要的信息。现在我想将数据插入到数组中,这样我就可以轻松地将信息插入到数据库中。
以下是代码的样子:
<?php
$page = file_get_contents("http://www.kalender.se/helgdagar");
$string = trim(preg_replace('/\s\s+/', '', $page));
$string = preg_replace("#<a.*?>(.*?)<\/a>#s", '|\1', $string);
preg_match_all("/<td>([\d-]{10})<\/td><td>(.*?)<\/td>/s", $string, $matches);
foreach($matches[0] AS $test) {
$splitted = explode('|', $test);
echo '<pre>'; print_r($splitted[0]); echo '</pre>';
}
?>
使用$splitted[0]
打印出以下内容:
2018-01-01
2018-01-06
2018-03-30
2018-04-01
2018-04-02
2018-05-01
2018-05-10
2018-05-20
2018-06-06
2018-06-23
2018-11-03
2018-12-25
2018-12-26
使用$splitted[1]
:
Nyårsdagen
Trettondedag jul
Långfredagen
Påskdagen
Annandag påsk
Första maj
Kristi himmelfärdsdag
Pingstdagen
Sveriges nationaldag
Midsommar
Alla helgons dag
Juldagen
Annandag jul
我希望将这些信息分组并放在一个数组中,如下所示:
Array(
'2018-01-01' => 'Nyårsdagen',
'2018-01-06' => 'Trettondedag jul',
... and so on
);
我该如何做到这一点?
答案 0 :(得分:0)
我甚至不知道array_combine()
甚至存在,直到Jon Stirling在comment中提到它。非常感谢,Jon! :)
这是最终结果:
<?php
$page = file_get_contents("http://www.kalender.se/helgdagar");
$string = trim(preg_replace('/\s\s+/', '', $page));
$string = preg_replace("#<a.*?>(.*?)<\/a>#s", '\1', $string);
preg_match_all("/<td>([\d-]{10})<\/td><td>(.*?)<\/td>/s", $string, $matches);
$array_test_1 = Array();
foreach($matches[1] AS $test1) {
$array_test_1[] = $test1;
# echo '<pre>'; print_r($splitted[1]); echo '</pre>';
}
$array_test_2 = Array();
foreach($matches[2] AS $test2) {
$array_test_2[] = $test2;
# echo '<pre>'; print_r($splitted[1]); echo '</pre>';
}
$finishit = array_combine($array_test_1, $array_test_2);
echo '<pre>'; print_r($finishit); echo '</pre>';
?>