PHP将引用列表中的特定值分配给字符串的每一次出现


PHP Assign a specific Value from reference list to every occurence of a string

我有两个列表。第一个列表是图书作者列表,每个名字都有自己的ID
示例:

  • id-name
  • 1 Miagi先生
  • 2 Smith先生
  • 3孙
  • 4海军准将先生

第二个列表是每本书有一个或多个作者的书籍列表
示例:

  • 图书作家
  • 所罗门国王矿业公司-Miagi先生
  • 她-Miagi先生
  • 报童-海军准将和孙

因此,在生成的列表中,我需要每次出现时写入者的ID(来自第一个列表)
示例:

  • 图书作者id
  • 所罗门国王矿业公司-Miagi先生-1
  • 她-Miagi先生-1
  • 报童-海军准将和孙-4,3

PHP中获得此结果的最佳方法是什么?

我希望通过阅读你的问题和评论,我能正确理解你。

我认为您仍然需要三个数据库表:

authors:
  id int(11) NOT NULL,
  name varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
books: 
  id int(11) NOT NULL,
  title varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
author2books: 
  id int(11) NOT NULL,
  author_id int(11) NOT NULL,
  book_id int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE (`author_id`, `book_id`)

现在迭代您的第一个列表(author-id),并简单地将结果插入到firstauthors表中。

然后迭代第二个结果(book,authors as string)。在这个迭代中,检查每个authors字符串。如果它有多个作者,请使用php_explode将它们分开。

我希望这能有所帮助。