具有多个定界符的字符串-MySQL逐行插入

时间:2019-01-21 11:23:09

标签: php mysql codeigniter

我正在插入带有多个定界符的字符串,并使用explode函数将其拆分到mysql数据库表中,但是我未能建立正确的逻辑。

我尝试使用单个定界符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显示的格式是我要使用codeigniter的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'

1 个答案:

答案 0 :(得分:0)

$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