2017-08-01 5 views
-1

でforeachループで配列の最後の要素を表示するには、どのように配列に学生の試験の点数を持っている学生は、私が表示されますどのようにのみファーストとPHP

のために選択したときのみ、最初と最後の試験のスコアを表示したいですPHPでforeachループを持つ配列の最初と最後の要素のみ。

これまでのところ、私は私のために動作し、以下の方法を行っているが、最後の要素を表示するには、アレイ

echo $array[0];//in case of numeric array 
echo reset($array);// in case of associative array 

の最初の要素を表示するには

$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']; 
    } 
} 
+0

'array_shift'、' –

+1

array_pop' current'と 'end'機能 –

+0

は'(リセット '試してみてください)'と 'エンド()私はarray_shiftを使用してforeachの前に私の配列を交換したu_mulder' –

答えて

2

効率的な方法ではないようだ

echo $array[count($array)-1];//in case of numeric array 
echo end($myArray);// in case of associative array 
+2

をarray_pop配列が__not__ numeric_indexedの場合は? –

+0

@u_mulderええ、私は答えを更新しました –

+0

@RAUSHANKUMARすべてのセッションや最初か最後を見たい場合はforeachループ内でこれを行う必要があります。エンドユーザが最初と最後のセッションを選択した場合、ループ反復をスキップします。私はこの質問を私はforeachループ内でこれを行う必要があると言いました –

0

アレイに固有の配列値がある場合は、最初と最後の要素を決定します

最後の要素と最初の要素が配列内に1回しか表示されない場合は、これは機能します。そうでない場合は、誤検出が発生します。したがって、キーを比較する必要があります(キーは一意です)。

foreach($array as $key => $element) { 
    reset($array); 
    if ($key === key($array)) 
     echo 'FIRST ELEMENT!'; 

    end($array); 
    if ($key === key($array)) 
     echo 'LAST ELEMENT!'; 
} 
+0

このメソッドは、配列。最初と最後だけが必要な場合は、残りの繰り返しをスキップするにはどうすればいいですか? –

+0

最初にすべての値をループしてから最初の例を確認し、配列の最初の値と最後の値をエコーし​​ます。私はあなたに論理を与えた:) –

関連する問題