我正在插入带有多个定界符的字符串,并使用explode函数将其拆分到mysql数据库表中,但是我未能建立正确的逻辑。
我尝试使用单个定界符i-e,并成功插入了该记录。
现在我想用|分割字符串和..
我用于行分隔,|
用于值分隔。
-
$var = "Facebook|http://facebook.com/123|12312|12
至13,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'
答案 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
。