Php 使用它将.txt文件内容转换为多维数组';当前格式
我有一个这种格式的文本文件,我想把它转换成一个数组 文本文件内容:Php 使用它将.txt文件内容转换为多维数组';当前格式,php,arrays,file,multidimensional-array,Php,Arrays,File,Multidimensional Array,我有一个这种格式的文本文件,我想把它转换成一个数组 文本文件内容: Header = "This is header" Object class = "First" min_size = 0 max_size = 727.555 content= true size = 1 item []: item [1]: class = "Convert" name = "CONTENT" min_size = 0
Header = "This is header"
Object class = "First"
min_size = 0
max_size = 727.555
content= true
size = 1
item []:
item [1]:
class = "Convert"
name = "CONTENT"
min_size = 0
max_size = 727.555
intervals: size = 474
intervals [1]:
min_size = 0
max_size = 13.139997023062838
type = ""
intervals [2]:
min_size = 13.139997023062838
max_size = 14.763036269953904
type = "this is a type"
intervals [3]:
min_size = 14.763036269953904
max_size = 17.01
type = ""
intervals [4]:
min_size = 17.01
max_size = 18.193
type = ""
如果可能的话,我想将其转换为类似这样的数组:
Array
(
[1] =>
Array(
['min_size'] = 0,
['max_size'] = 13.139997023062838,
['type'] = ""
)
[2] =>
Array(
['min_size'] = 13.139997023062838,
['max_size'] = 14.763036269953904,
['type'] = "this is a type"
)
我已经试过这样的方法:
$file = "array.txt";// Your Temp Uploaded file
$cols = array();
ini_set('auto_detect_line_endings', true);
$fh = fopen($file, 'r');
$i = 0;
while (($line = fgetcsv($fh, 1000, "\t")) !== false) {
$cols[] = $line;
}
echo "<pre>";
print_r($cols);
echo "</pre>";
$file=“array.txt”;//你的临时上传文件
$cols=array();
ini设置(“自动检测线结束”,true);
$fh=fopen($file,'r');
$i=0;
而($line=fgetcsv($fh,1000,“\t”)!==false){
$cols[]=$line;
}
回声“;
印刷费($cols);
回声“;
但这只是把所有东西都变成了一个数组
这可能吗
我已经研究过这一点:具有
preg\u match\u all
、array\u map
和array\u combine
功能的复杂解决方案:
Array
(
[0] => Array
(
[min_size] => 0
[max_size] => 13.139997023062838
[type] =>
)
[1] => Array
(
[min_size] => 13.139997023062838
[max_size] => 14.763036269953904
[type] => this is a type
)
[2] => Array
(
[min_size] => 14.763036269953904
[max_size] => 17.01
[type] =>
)
[3] => Array
(
[min_size] => 17.01
[max_size] => 18.193
[type] =>
)
)
想解释下一次投票吗?又一次没有任何解释的下一次投票。谢谢“这可能吗?”不是一个合适的问题。“但这只是将所有内容转换为单个数组”-是的,因为这就是您在代码中所做的一切。当然,你需要做更多的事情,比如首先找到一种方法来确定哪些行是你感兴趣的。至少你已经评论过了。谢谢你的反馈。我希望有一个更直接的函数。我现在正在尝试检查选项卡并将其转换为数组。
fgetcsv
用于读取CSV“格式”中的数据。你这里没有,甚至没有。谢谢你。它可以工作,但我的文件有问题,我必须改变编码为UTF-8的工作。
Array
(
[0] => Array
(
[min_size] => 0
[max_size] => 13.139997023062838
[type] =>
)
[1] => Array
(
[min_size] => 13.139997023062838
[max_size] => 14.763036269953904
[type] => this is a type
)
[2] => Array
(
[min_size] => 14.763036269953904
[max_size] => 17.01
[type] =>
)
[3] => Array
(
[min_size] => 17.01
[max_size] => 18.193
[type] =>
)
)