Php 拆分分隔文本并与另一个字段配对
我希望这不是一个重复的问题,我发现了许多类似的问题,但没有一个符合我的要求。我试着用它来解决问题,但我想也许我问错了问题——我指定不想用php来解决这个问题。它也很接近,但再一次,这并不能完全定义它。我安装了它,看起来它将是一个强大的工具,但我不能得到它返回我希望的结果。我已经尝试与一起使用,但无法使用它获取同一数组中的所有数据。序言很长,但问题在于此。 我有一个DB和下表Php 拆分分隔文本并与另一个字段配对,php,mysql,sql,arrays,opencart,Php,Mysql,Sql,Arrays,Opencart,我希望这不是一个重复的问题,我发现了许多类似的问题,但没有一个符合我的要求。我试着用它来解决问题,但我想也许我问错了问题——我指定不想用php来解决这个问题。它也很接近,但再一次,这并不能完全定义它。我安装了它,看起来它将是一个强大的工具,但我不能得到它返回我希望的结果。我已经尝试与一起使用,但无法使用它获取同一数组中的所有数据。序言很长,但问题在于此。 我有一个DB和下表 id类别 10088 102| 88 | 243 | 442| 228 | 243 | 228 | 239 | 228 |
id
类别
100
88
102
| 88 | 243 |
442
| 228 | 243 | 228 | 239 | 228 |
我正在重建它,把它放到OpenCart里
所以需要像这样或者在一个数组中,我可以用它来创建这个
ID
类别
100
88
102
88
102
243
442
228
442
243
442
228
等
我把它输入和输出数据库没有问题,只是修改数据,将ID与每个类别联系起来,不管字段中可能有多少。我花了大约2天的时间试图找到一个解决方案,我相信这是非常基本的。
我得到的最接近于foreach
但最终得到了一个数组
array ('ID' => 442,
'Category' => array (0 => 228, 1 => 243, 2 => 228 etc)
根据检索查询结果的方式,可以执行以下操作:
foreach($result as $row) { // iterate over each row in the query result
$categories = array_filter(explode('|', $row['categories']));
foreach($categories as $category) {
// insert row into new table with id $row['id'] and category $category
}
}
我使用selectid,categories FROM表将其作为数组调用。我需要了解数组的范围。。。php中的工具。我看了array_walk和array_map,但都没有完成我想要的工作。Thx。@TimP正常。如果您使用的是PDO,
$result
将只是fetchAll()
返回的数组。我可以在每次迭代时将其输入数据库吗。?避免重新分配?我知道在生产环境中,这将是非常低效的。但这只是一次数据转换,这是对一条现已消失的评论的回应。您现在已经在代码中说明了我的意思-在每次迭代中插入行。@TimP很高兴我能提供帮助:)看起来您需要规范化数据。@Ben Fortune-您是指ID422
中有category 228
三次吗?我没有注意到,但这是来自数据库的实际数据-这增加了一个新问题。