2017-04-19 71 views
-1

在PHP中可以使用不同的if语句来决定运行哪个foreach循环以避免写出相同的代码。不同的foreach循环取决于是否声明

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案件...☺

+0

但他可以有不同的循环代码为不同的if语句,所以使用通用变量没有任何意义! –

+0

@SatishSaini OP明确表示只有一个功能......这就是为什么。 *'foreach循环运行,以避免写出相同的代码。'* –

1

你可以使用$loopArr变量来存储基于交换机上的临时数据案例值。

$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