我有一个 CSV 文件要导入 MYSQL 数据库。问题是每行都有不同数量的字段。他们的安排相当随意。
但是,它们可以分为几类(文本、图像....等)。
在目前的形式中,直接导入数据库太不规则了,所以我厌倦了使用 PHP 重新格式化它。
简化示例:
$messy = array(
[0] => array("text1","text2" ),
[1] => array("img1.jpg" ),
[2] => array("text1","img1.jpg","img2.jpg"),
[3] => array("img1.jpg","text1","text2"),
...
[1000] => array("text2","img1.jpg","img2.jpg","text1")
);
我希望新数组与以下模式匹配
array(
[0] =>array(TEXT,TEXT,IMG,IMG),
[1] =>array(TEXT,TEXT,IMG,IMG),
在没有足够数据的情况下,剩余值=0;
[0] =>array("text1","text2",0,0),
[1] =>array(0,0,"img1.jpg",0),
我尝试创建新数组并将“文本”文件移到开头,如下所示:
$ordered=array();
$i=0;
foreach($messy as $row){
foreach($row as $item){
if (strlen(strstr($item,"text"))>0) {
if(($key = array_search($item, $row)) !== false){
unset($row[$key]);
}
array_unshift($row,$item);
}
}
$ordered[$i++]=$row;
}
但是它不会重新格式化,只是重新排序。