100人以上の従業員がいるemp_recという配列があり、各従業員には約60個のフィールドがあり、次の方法を使用して一度に1人の従業員を使用しています...
foreach($emp_rec as $obj) {
$name = $obj->get_empname();
//.....
......///
}
現在、1つのループで一度に3人の従業員を使用することを計画していますが、これを行うにはどうすればよいですか...?
100人以上の従業員がいるemp_recという配列があり、各従業員には約60個のフィールドがあり、次の方法を使用して一度に1人の従業員を使用しています...
foreach($emp_rec as $obj) {
$name = $obj->get_empname();
//.....
......///
}
現在、1つのループで一度に3人の従業員を使用することを計画していますが、これを行うにはどうすればよいですか...?
これを試すことができます:
$current = Array();
while(($current[0] = array_shift($emp_rec))
&& ($current[1] = array_shift($emp_rec))
&& ($current[2] = array_shift($emp_rec))) {
// do stuff here
}
if( $current[0]) {
// there were records left over, optionally do something with them.
}
次のようなものを試してください。
for ($i = 0; $i < count($emp_rec); $i+=3) {
$emp1 = $emp_rec[$i];
$emp2 = $emp_rec[$i+1];
$emp3 = $emp_rec[$i+2];
}
どうですか :
$GROUP_SIZE = 3;
$emp_count = count($emp_rec);
for ($i=0; $i<$emp_count; $i+=$GROUP_SIZE) {
for ($j=0; $i+$j<$emp_count && $j<$GROUP_SIZE; $j++) {
$current = $emp_rec[$i+$j];
$name = $current->get_empname();
}
}
一度に 3 人または N 人の従業員を操作する必要がある場合、現在の従業員がどの「グループ」に属しているかがわかります。
Here you can iterate in one time on same multi objects. Easy to adapt.
<?php
// Example of class
class A {
public $a = 'a';
public $b = 'b';
public $c = 'c';
}
$obj1 = new A; // Instantiate 3 objects
$obj2 = new A;
$obj3 = new A;
$objs = array((array)$obj1, (array)$obj2, (array)$obj3); // Array of objects (cast in array)
foreach ($objs[0] as $key => $value) {
echo $objs[0][$key];
echo $objs[1][$key];
echo $objs[2][$key];
}
Output aaabbbccc