我有一个数组$rows
,其中每个元素都是一行由15个制表符分隔的值。我想将$rows
分解为2D数组$rowData
,其中每一行都是一个数组元素,每个制表符分隔的值都分配给不同的数组元素。我试过这两种方法没有成功。我知道第一个有编码错误,但我不知道如何纠正它。任何帮助都会很棒。
for ($i=0; $i<count($rows); $i++){
for ($j=0; $j<15; $j++){
$rowData = array([$i] => array (explode(" ", $rows[$j])));
}
}
foreach ($rows as $value){
$rowData = array( array (explode(" ", $rows[$value])));
}
答案 0 :(得分:5)
$rowData = array();
foreach($rows as $value) {
$rowData[] = explode("\t", $value);
}
答案 1 :(得分:2)
for ($j=0; $j<15; $j++) {
$rowData[$j] = explode("\t", $rows[$j]);
}
要展开:以下代码的问题:
$rowData = array([$i] => array (explode(" ", $rows[$j])));
是你似乎并不知道你所写的不同内容是什么意思。
对array()的调用返回一个带有指定元素的新数组。所以array (explode(" ", $rows[$j]))
产生一个包含单个元素的数组,即explode()
返回的数组。并且您将其包含在另一个array()
调用中,将循环变量$i
指定为与该元素对应的键。此外,您正在使用赋值符号=
,这意味着每次进行循环时,$rowData
都被完全覆盖 - 您想要的是在不删除的情况下向其中添加新元素旧的。