非常粗糙,但这是我到达的结果:
$names = array();
$string = 'heading="firstname","lastname"&user_1382926="Mike","Smith"&user_1383059="Sonny","Williams"&user_1303EM000014="Mike","Jones"';
$arr = explode("&",$string);
foreach($arr as $key_values){
if(substr($key_values,0,5) == 'user_'){
$piecies = explode("=",$key_values);
foreach($piecies as $key=>$val){
if($key%2==0){
continue;
}
preg_match_all('/"(.*?)","(.*?)"/',$val,$first_last_name);
$names[] = array('firstname'=>$first_last_name[1],'lastname'=>$first_last_name[2]);
}
}
}
echo '
',print_r($names),'';
foreach($names as $name){
$firstname = $name['firstname'];
$lastname = $name['lastname'];
$stmt = $mysqli->prepare("INSERT INTO usertest (firstname,lastname) VALUES (?,?)");
$stmt->bind_param('ss', $firstname, $lastname);
$stmt->execute();
}
注意:我在你的原始字符串中添加了史密斯(“迈克”,“史密斯”)之前的双引号,因为我希望它在OP中缺失.