带有多个分隔符的字符串 - MySQL 逐行插入



我正在插入带有多个分隔符的字符串,并使用爆炸函数将其拆分到 mysql 数据库表,但我未能构建正确的逻辑。

我尝试使用单分隔符 i-e ,并成功插入该记录。 现在我想用 |和。
我用于行分隔,|用于值分隔。I-E $var = "Facebook|http://facebook.com/123|12312|1213,Twitter|http://twitter.com/231|12321|12 to 13";

$cat="2,3";
$i=0;
$arrayOfCategories = explode(",", $cat);
foreach ($arrayOfCategories as $categories) {
    $datas[$i]['UserID'] = 2;
    $datas[$i]['CatID'] = $categories;
    $i++;
}
var_dump($datas);

使用var_dump显示的格式是我想使用编码点火器insert_batch插入的格式。

这是预期的输出

   array (size=2) 
    0 => array (size=2) 
        'SocialName' => string 'Facebook' 
        'URL' => string 'facebook.com/123' 
    1 => array (size=2) 
        'SocialName' => string 'Twitter' 
        'URL' => string 'twitter.com/231'
$array = array();
$string = "Facebook|http://facebook.com/123|12312|12 to 13,Twitter|http://twitter.com/231|12321|12 to 13";
$rows = explode(',', $string);
foreach ($rows as $row) {
    $values = explode('|', $row);
    $array[] = array('SocialName' => $values[0], 'URL' => $values[1]);
}
var_dump($array);

创建一个数组$array来存储最终结果。

现在,使用爆炸拆分输入字符串$string ,,这将为您提供"行"。

遍历所有行(foreach),并在|上拆分每一行(爆炸),这将为您提供"值"。

$values[0]的第一个值是"SocialName",第二个值$values[1]是"URL",因此将它们添加到新数组中,并将该新数组添加到最终结果数组$array

最新更新