在php中使用循环定义2D数组
我有一个数组在php中使用循环定义2D数组,php,arrays,loops,multidimensional-array,Php,Arrays,Loops,Multidimensional Array,我有一个数组$rows,其中每个元素是由15个制表符分隔的值组成的行。我想将$rows分解成一个二维数组$rowData,其中每一行都是一个数组元素,每个制表符分隔的值都被分配给不同的数组元素。我试过这两种方法都没有成功。我知道第一个有一个编码错误,但我不知道如何纠正它。任何帮助都将是惊人的 for ($i=0; $i<count($rows); $i++){ for ($j=0; $j<15; $j++){ $rowData = array([$i] => a
$rows
,其中每个元素是由15个制表符分隔的值组成的行。我想将$rows
分解成一个二维数组$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])));
}
$i=0;$i的
就是你似乎不知道你所写的不同的东西到底意味着什么
对array()的调用返回一个包含指定元素的新数组。因此array(explode(“,$rows[$j])
生成一个包含单个元素的数组,即explode()
返回的数组。您正在对array()的另一个调用中包装该数组
,指定循环变量$i
作为对应于该元素的键。此外,您正在使用赋值符号=
,这意味着每次通过循环时,$rowData
都会被完全覆盖-您想要的是在不删除旧元素的情况下向其添加新元素。T谢谢你的解释,我愚蠢地没有意识到我甚至调用了一个array()函数。非常有用!
$rowData = array();
foreach($rows as $value) {
$rowData[] = explode("\t", $value);
}
for ($j=0; $j<15; $j++) {
$rowData[$j] = explode("\t", $rows[$j]);
}
$rowData = array([$i] => array (explode(" ", $rows[$j])));