オブジェクトのループと配列が必要です。場合によっては、ループの内部で、内部ポインタを配列の次の要素に移動する必要があります。それ、どうやったら出来るの?次PHP:配列オブジェクトをforeachし、内部ポインタを次のポインタに移動する方法は?
foreach($objects as $object)
{
// TODO: move internal pointer to next one?
// next($objects) doesn't work
}
オブジェクトのループと配列が必要です。場合によっては、ループの内部で、内部ポインタを配列の次の要素に移動する必要があります。それ、どうやったら出来るの?次PHP:配列オブジェクトをforeachし、内部ポインタを次のポインタに移動する方法は?
foreach($objects as $object)
{
// TODO: move internal pointer to next one?
// next($objects) doesn't work
}
の内部配列ポインタを進める:
foreach ($objects as $object) {
if (!interesting($object)) {
continue;
}
// business as usual
}
場合を次にスキップするかどうかを決定する必要があります。
私は最初にあなたが何をしたいかを表現するためのより良いロジックがないかどうかチェックしたいと思います。存在しない場合は、@netcoder's list each
exampleがより簡潔な方法です。
- あなたは配列ポインタを移動することはできませんが、あなたはskip the iterationできる配列
前述のように、数字キーを使用している場合にのみfor
またはcontinue
を使用できます。別の方法としては、(それがforeach
ような配列んのコピーを作成しないよう)など、あなたがnext
で配列ポインタを移動することができますlist
とeach
反復法、prev
を、使用することです:
$array = array(1,2,3,4,5);
while (list($key, $value) = each($array)) {
echo $value;
next($array);
}
ます出力:さて、私は理解していることを、あなたが欲しいもの
024
;)他の2つのソリューション
$c = count($array);
for ($i = 0; $i < $c; $i += 2) {
$item = $array[$i];
}
foreach (range(0, count($array), 2) as $i) {
$item = $array[$i];
}
forループを使用すると、次のようになります。
for($i = 0; $i < sizeof($array); $i++)
{
echo $array[$i]->objectParameter;
$i++; //move internal pointer
echo $array[$i]->objectParameter;
$i++; //move internal pointer again
echo $array[$i]->objectParameter;
//$i++; //no need for this because for loop does that
}
'continue'?または私はポイントを逃している? – mhitza
関数 'move()'は存在せず、実際にはあなたが望むものは得られません。 'foreach'は配列の全エントリを繰り返します。では、「内部ポインタを移動する」とはどういう意味ですか? 'foreach'ではポインタを処理する必要はありません(next()、current()、...) – KingCrunch
@mhitza:配列に10個のオブジェクトがあり、5番目にあります。私は、次の反復で次の反復で私を7番目に移動させるようにポインタを前進させたい。 – StackOverflowNewbie