需要帮助,Myscript生成动态数组,输出如下:
Array
(
[0] => A, B, C, D
[1] => 15,20,24,19
[2] => X,Y,Z,W
)
或
Array
(
[0] => A, B, C, D
[1] => 15,20,24,19
)
其中有时是2个主要索引或更多。
如何将它们应用到HTML表中,结果如下:
------------------
Field 1 | Field 2 |
------------------
A | 15 |
------------------
B | 20 |
------------------
C | 24 |
------------------
D | 19 |
------------------
其中字段是跟随主索引的数量。
非常感谢您的帮助:)
答案 0 :(得分:0)
如果它们是逗号分隔的字符串,那么您需要先将它们映射并爆炸。然后你可以继续对它们进行分组并将它们排成一行,这样它们就可以更容易循环。例如:
$array = ['A,B,C,D', '15,20,24,19', 'X,Y,Z,W'];
// explode comma delimited
$pieces = array_map(function($piece){
return explode(',', $piece);
}, $array);
// group them
$group = array(); $i = 0;
while(true) {
foreach ($pieces as &$piece) {
$group[$i][] = array_shift($piece);
}
$i++;
$last = end($pieces);
if(empty($last)) break;
}
// then just echo them in a table
echo '<table cellpadding="10">';
echo '<tr>';
for($x = 1, $size = count($array); $x <= $size; $x++) echo '<td>Field ' . $x . '</td>';
echo '</tr>';
foreach ($group as $value) {
echo '<tr>';
foreach($value as $v) {
echo '<td>' . $v . '</td>';
}
echo '</tr>';
}
echo '</table>';
答案 1 :(得分:0)
在字符串的每个子数组上调用var source3 = Observable.Create<StreamReader>(observer =>
{
FileStream readFile = File.OpenRead(filePath);
StreamReader reader = new StreamReader(readFile);
observer.OnNext(reader);
observer.OnCompleted();
return new CompositeDisposable(readFile, reader);
});
后,您无需再进行任何准备工作,只需使用explode()
访问列数据。
代码:(Demo)
array_column()
输出:
$array=['A, B, C, D', '15,20,24,19', 'X,Y,Z,W']; // differing delimiters: comma vs comma-space
$array=array_map(function($s){return preg_split('/, ?/',$s);},$array);
echo "<table>";
echo "<tr>";
for($x=1,$column_count=sizeof($array); $x<=$column_count; ++$x){
echo "<th>Field$x</th>";
}
echo "</tr>";
foreach($array[0] as $i=>$v){
echo "<tr><td>",implode("</td><td>",array_column($array,$i)),"</td></tr>";
}
echo "</table>";