簡體   English   中英

如何在PHP中使用foreach循環僅顯示數組的第一個和最后一個元素

[英]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_firstarray_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM