2017-04-19 5 views
-1

PHPでは、同じコードを書くのを避けるためにどのforeachループを実行するかを決めるのに、異なるif文を使用できますか?foreachループがstatentであるかどうかに応じて

if($myval == 1) 
foreach ($student as $member) // to display just students 

elseif($myval == 2) 
foreach ($staff as $member) // to display just staff 

elseif($myval == 3) 
foreach ($sessional as $member) // to display just sessional 

elseif($myval == 0) 
foreach ($allmembers as $member) // to display all 
..then print out either just student, or staff, or sessional records 
+3

はい、可能です。 –

答えて

1

うん。あなたが持っているかのような一般的な変数を持つことができ、共通の$member

if($myval == 1) 
    $members = $student; // to display just students 

elseif($myval == 2) 
    $members = $staff; // to display just staff 

elseif($myval == 3) 
    $members = $sessional; // to display just sessional 

elseif($myval == 0) 
    $members = $allmembers; // to display all 

// ultimately foreach 
foreach ($members as $member) // finally run just once 

switch例を使用するより良い方法...☺

あなたがスイッチに基づいて、一時的なデータを格納する $loopArr変数を使用することができ
+0

しかし、彼は異なるif文のために異なるforループコードを持つことができるので、共通変数を使うのは意味をなさない! –

+0

@SatishSaini OPには明らかに1つの機能しかないと言われています。それが理由です。 * 'foreachループを実行して同じコードを書くのを避ける.' * –

1

ケース値。

$loopArr = array(); 

switch($myval) { 
    case 0: $loopArr = $allmembers; 
     break; 
    case 1: $loopArr = $student; 
     break; 
    case 2: $loopArr = $staff; 
     break; 
    case 3: $loopArr = $sessional; 
     break; 
    default: $loopArr = array(); 
} 

foreach ($loopArr as $member) { 
    // Your code here 
} 
+0

これは最高の解決策のように見えますが、うまくいかないようです。それはすべての議論の後に壊れるべきですか? – wilky

関連する問題