你好我在这里有一个怪异的问题,我想要来自for-each循环的第一个数据和最后一个数据。为此,我看到this回答。这将是非常有帮助的,但在这里,我的情况确实有点复杂。 我有循环如下
<?php
$count = 0;
$length = count($myDataArray);
foreach ($myDataArray as $value) {
if($count >= 7)
{
//Some Data to Print
//this is first data for me
<tr >
<td><?=$myfinaldate?></td>
<td><?=$stockdata[1]?></td>
<td><?=$stockdata[2]?></td>
<td><?=$stockdata[3]?></td>
<td <?php if($count == 8)echo "style='background-color:#47ff77;'"; ?>><?=$stockdata[4]?></td>
<td><?=$stockdata[5]?></td>
<td><?php echo $mydate; ?></td>
</tr>
<?php
}
$count++;
}
现在如何从循环中获取第一个和最后一个数据?
答案 0 :(得分:0)
我想你可以使用你的length
属性。
由于您拥有阵列的总数,请检查
myDataArray[0]
和myDataArray[$length-1]
?
答案 1 :(得分:0)
要获取数组的第一个和最后一个值,请使用以下函数:
$array = $myDataArray;
$array_values = array_values($myDataArray);
// get the first value in the array
print $array_values[0]; // prints 'first item'
// get the last value in the array
print $array_values[count($array_values) - 1]; // prints 'last item'
答案 2 :(得分:0)
您可以使用array_values
删除数组的键并用索引替换它们。如果执行此操作,则可以直接访问指定的字段。像这样,您可以检查阵列上的要求,而不会对其进行循环,如下面的if
- 条件所示:
$length = count($myDataArray);
$dataArrayValues = array_values($myDataArray);
$wantedFields = [];
if ($length >= 8) {
$wantedFields[] = $dataArrayValues[7];
if ($length > 8) {
$wantedFields[] = end($dataArrayValues);
}
}
由于条件原因,如果它也是最后一个字段,你将不会两次打印第8个字段。
foreach ($wantedFields as $value) {
<tr>
... //Your previous code
</tr>
}