创建 html table 并使用数组中的数据填充
Create html table and fill using data in array
你能帮我解决 php 中的循环问题吗?搞不懂好几个小时
总的来说,下面的数据是聚类计算的结果 - KMeans。下面的数组是分组后的数据。
问题出在显示它的时候,因为它对我来说太混乱了。
所以我有如下数组数据。
array (size=3)
0 =>
array (size=8)
'Label 1' => int 1
'Label 2' => int 0
'Label 3' => int 0
'Label 4' => int 0
'Label 5' => int 0
'Label 6' => int 0
'Label 7' => int 1
'Label 8' => int 0
1 =>
array (size=8)
'Label 1' => int 0
'Label 2' => int 0
'Label 3' => int 1
'Label 4' => int 0
'Label 5' => int 1
'Label 6' => int 1
'Label 7' => int 0
'Label 8' => int 0
2 =>
array (size=8)
'Label 1' => int 0
'Label 2' => int 1
'Label 3' => int 0
'Label 4' => int 1
'Label 5' => int 0
'Label 6' => int 0
'Label 7' => int 0
'Label 8' => int 1
我想创建一个看起来像这样的 table。
标签
群组
标签 1
C1
标签 2
C3
标签 3
C2
标签 4
C3
标签 5
C2
标签 6
C2
标签 7
C1
标签 8
C3
Where array 0.1,2 will be used to identify C1, C2, C3. so
array 0 = C1
array 1 = C2
array 2 = C3
Saya sudah mencoba seperti ini, tetapi hasil yang diharapkan membingungkan dan sejak itu, hanya macet di sini
// $dataset->count() = 8
for ($i=0; $i<$dataset->count(); $i++){
// $dataset->label($i) = get lable
echo $dataset->label($i) . "<br>";
// $results->count() = 3
for ($j=0; $j<$results->count(); $j++){
if ($dataset->label($i) == array_keys($results->offsetGet($j))[$i]){
// $results->offsetGet($j) = contains the array above
echo $results->offsetGet($j)[array_keys($results->offsetGet($j))[$i]];
echo "<br>";
}
}
echo "<br>";
}
已经是这样的代码的结果了,
像 table.
这样的最终结果让我很困惑
Label 1
1
0
0
Label 2
0
0
1
Label 3
0
1
0
Label 4
0
0
1
Label 5
0
1
0
Label 6
0
1
0
Label 7
1
0
0
Label 8
0
0
1
所以这样想来判断标签是属于哪个组
因此数组键为 0.1,2 以指定 C1、C2、C3,例如
更准确地说,每个标签的值 1 以确定该组所属的位置;每个标签的值为 0 表示不是该组的成员。
0 => 'Label 1' => 1 // then it is a member of C1, and if
0 => 'Label 2' => 0 // is not a member of C1;
1 => 'Label 3' => 1 // then it is a member of C2
2 => 'Label 2' => 1 // and now label 2 is a member of C3
[
0 => [
'Label 1' => 1, // member C1
'Label 2' => 0,
'Label 3' => 0,
. . .
],
1 => [
'Label 1' => 0,
'Label 2' => 0,
'Label 3' => 1, // member C2
...
],
2 => [
'Label 1' => 0,
'Label 2' => 1, // member C3
'Label 3' => 0,
...
]
]
使用 foreach
遍历第一个子数组,扩展语法使您可以访问键和值。如果值为 1,则您希望在第二列中输出 C1
。使用key访问其他两个子数组中对应的值,根据这些值是否为1输出C2
/C3
。
<table>
<thead>
<tr>
<td>Label</td>
<td>Group</td>
</tr>
</thead>
<tbody>
<?php foreach($data[0] as $label => $value): ?>
<tr>
<td><?php echo $label; ?></td>
<td><?php
if($value == 1) { echo 'C1'; }
if($data[1][$label] == 1) { echo 'C2'; }
if($data[2][$label] == 1) { echo 'C3'; }
?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
减少数据集的实例:https://3v4l.org/qb3FA
你能帮我解决 php 中的循环问题吗?搞不懂好几个小时
总的来说,下面的数据是聚类计算的结果 - KMeans。下面的数组是分组后的数据。
问题出在显示它的时候,因为它对我来说太混乱了。
所以我有如下数组数据。
array (size=3)
0 =>
array (size=8)
'Label 1' => int 1
'Label 2' => int 0
'Label 3' => int 0
'Label 4' => int 0
'Label 5' => int 0
'Label 6' => int 0
'Label 7' => int 1
'Label 8' => int 0
1 =>
array (size=8)
'Label 1' => int 0
'Label 2' => int 0
'Label 3' => int 1
'Label 4' => int 0
'Label 5' => int 1
'Label 6' => int 1
'Label 7' => int 0
'Label 8' => int 0
2 =>
array (size=8)
'Label 1' => int 0
'Label 2' => int 1
'Label 3' => int 0
'Label 4' => int 1
'Label 5' => int 0
'Label 6' => int 0
'Label 7' => int 0
'Label 8' => int 1
我想创建一个看起来像这样的 table。
标签 | 群组 |
---|---|
标签 1 | C1 |
标签 2 | C3 |
标签 3 | C2 |
标签 4 | C3 |
标签 5 | C2 |
标签 6 | C2 |
标签 7 | C1 |
标签 8 | C3 |
Where array 0.1,2 will be used to identify C1, C2, C3. so
array 0 = C1
array 1 = C2
array 2 = C3
Saya sudah mencoba seperti ini, tetapi hasil yang diharapkan membingungkan dan sejak itu, hanya macet di sini
// $dataset->count() = 8
for ($i=0; $i<$dataset->count(); $i++){
// $dataset->label($i) = get lable
echo $dataset->label($i) . "<br>";
// $results->count() = 3
for ($j=0; $j<$results->count(); $j++){
if ($dataset->label($i) == array_keys($results->offsetGet($j))[$i]){
// $results->offsetGet($j) = contains the array above
echo $results->offsetGet($j)[array_keys($results->offsetGet($j))[$i]];
echo "<br>";
}
}
echo "<br>";
}
已经是这样的代码的结果了, 像 table.
这样的最终结果让我很困惑Label 1
1
0
0
Label 2
0
0
1
Label 3
0
1
0
Label 4
0
0
1
Label 5
0
1
0
Label 6
0
1
0
Label 7
1
0
0
Label 8
0
0
1
所以这样想来判断标签是属于哪个组 因此数组键为 0.1,2 以指定 C1、C2、C3,例如 更准确地说,每个标签的值 1 以确定该组所属的位置;每个标签的值为 0 表示不是该组的成员。
0 => 'Label 1' => 1 // then it is a member of C1, and if
0 => 'Label 2' => 0 // is not a member of C1;
1 => 'Label 3' => 1 // then it is a member of C2
2 => 'Label 2' => 1 // and now label 2 is a member of C3
[
0 => [
'Label 1' => 1, // member C1
'Label 2' => 0,
'Label 3' => 0,
. . .
],
1 => [
'Label 1' => 0,
'Label 2' => 0,
'Label 3' => 1, // member C2
...
],
2 => [
'Label 1' => 0,
'Label 2' => 1, // member C3
'Label 3' => 0,
...
]
]
使用 foreach
遍历第一个子数组,扩展语法使您可以访问键和值。如果值为 1,则您希望在第二列中输出 C1
。使用key访问其他两个子数组中对应的值,根据这些值是否为1输出C2
/C3
。
<table>
<thead>
<tr>
<td>Label</td>
<td>Group</td>
</tr>
</thead>
<tbody>
<?php foreach($data[0] as $label => $value): ?>
<tr>
<td><?php echo $label; ?></td>
<td><?php
if($value == 1) { echo 'C1'; }
if($data[1][$label] == 1) { echo 'C2'; }
if($data[2][$label] == 1) { echo 'C3'; }
?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
减少数据集的实例:https://3v4l.org/qb3FA