在 php 中,我有一个包含出版商和书籍列表的数组。数组看起来像这样
[p]DARK HORSE COMICS
[c]ADVENTURES INTO THE UNKNOWN ARCHIVES HC VOL 03 $49.99
[c]BALTIMORE INFERNAL TRAIN #1 $3.50
[c]BLOOD BLOCKADE BATTLEFRONT TP VOL 04 $12.99
[p]DC COMCIS
[c]BATMAN #23 VOL 03 $3.99
[p]IMAGE COMICS
[c]SAGA #35 #2.99
模式是首先列出的发布者,并且“[p]”标签表示这是发布者。以下是出版商当月发行的书籍列表,用 [c] 表示。模式再次开始出版商...书籍...出版商...书籍
我想找到 [p] 分隔符之间的所有书籍,并将它们插入到基于出版商的适当数据库中。所有的 Dark Horse 书籍都进入 Dark Horse 数据库 所有 DC Comics 书籍都进入 DC Comics 数据库。
我知道我可能可以使用 preg_match 来查找 [p] 但我不确定如何找到 [p] 标签之间的所有 [c] 标签,并告诉它一旦遇到第二个 [p] 就停止搜索] 标签。
我在想这样的事情也许
查找出版商的所有单本书并建立一个数组
look for first publisher using the [p] tag
...
find all books by first publisher using [c] tag
...
build array for first publisher
...
$darkHorse[] = "all dark horse books"
...
run into next [p] tag and stop matching books
...
look for next publisher using the next [p] tag
...
find all books for next publisher using [c] tag
...
build array for next publisher
...
$dcComics = "all dc comic books"
...
repeat...
[p] 和 [c] 标签是任意的。我只是插入了那些来表示出版商和书籍之间的差异。
然后我确定我可以获取这些单独的数组并将它们插入到我的 SQL 数据库中。
感谢任何提示