[英]How to display only First and Last element of the array with foreach loop in PHP
我有一個數組中的學生考試成績,並希望在學生選擇時僅顯示第一次和最后一次考試成績
如何在 PHP 中使用 foreach 循環僅顯示數組的第一個和最后一個元素。
到目前為止,我已經完成了以下對我有用的方法,但它似乎不是一種有效的方法
$y = 0;
$student_total_sessions = $total_counter = sizeof($student_exam_session_data);
if($this->data['show_sessions'] != 'all_sessions')
{
$student_total_sessions = ($student_total_sessions > 2) ? 2 : $student_total_sessions;
}
foreach ($student_exam_session_data as $student_session_id => $student_session_data)
{
$y++;
// only show first and last in case show sessions is pre and post
if($this->data['show_sessions'] != 'all_sessions' && $y > 1 && $y != $total_counter)
{
continue;
}
else
{
echo $student_session_data['exam_score'];
}
}
顯示數組的第一個元素
echo $array[0];//in case of numeric array
echo reset($array);// in case of associative array
顯示最后一個元素
echo $array[count($array)-1];//in case of numeric array
echo end($myArray);// in case of associative array
如果您的數組具有唯一的數組值,那么確定第一個和最后一個元素是微不足道的:
foreach($array as $element) {
if ($element === reset($array))
echo 'FIRST ELEMENT!';
if ($element === end($array))
echo 'LAST ELEMENT!';
}
如果最后一個和第一個元素在數組中只出現一次,則此方法有效,否則會出現誤報。 因此,您必須比較密鑰(它們肯定是唯一的)。
foreach($array as $key => $element) {
reset($array);
if ($key === key($array))
echo 'FIRST ELEMENT!';
end($array);
if ($key === key($array))
echo 'LAST ELEMENT!';
}
// Go to start of array and get key, for later comparison
reset($array)
$firstkey = key($array);
// Go to end of array and get key, for later comparison
end($array);
$lastkey = key($array);
foreach ($array as $key => $element) {
// If first element in array
if ($key === $firstkey)
echo 'FIRST ELEMENT = '.$element;
// If last element in array
if ($key === $lastkey)
echo 'LAST ELEMENT = '.$element;
} // end foreach
或者對於 PHP 7.3 及更高版本使用array_key_first
和array_key_last
:
foreach($array as $key => $element) {
// If first element in array
if ($key === array_key_first($array))
echo 'FIRST ELEMENT = '.$element;
// If last element in array
if ($key === array_key_last($array))
echo 'LAST ELEMENT = '.$element;
} // end foreach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.