2012-02-26 13 views
1

複数の配列要素を同時に選択する方法はありますか? forループでは、$ i =最初に選択されるセットのサイズが選択され、その後の増分はそのサイズの次のセットを配列から選択することを表します。複数の配列要素を選択する

ありがとうございます!

+0

"要素の選択"を定義します。 –

+0

I.e.一度に1つの配列要素をループするのではなく、代わりに選択したペアをループすることができます(たとえば、3つの要素を次に3つの要素にします)。 – user784446

+0

php array_slice関数を調べましたか?これはあなたが探しているものですか?配列の配列を意味するのですか? –

答えて

2

e.e.e.一度に1つの配列要素をループするのではなく、代わりに選択したペアをループすることができます(たとえば、3つの要素を次に3つの要素にします)。

多くの方法があります。
1は、それはあなたがあなたの要素グループ化する方法に依存し

$arr = array(1,2,3,4,5,6,7,8,9); 
$new = array_chunk($arr,3); 
foreach ($new as $chunk) { 
    print_r($chunk);// 3 elements to do something with 
} 
+0

array_splitを意味しましたか?またはarray_chunk? – liquorvicar

+0

ありがとう、それはタイプミスでした –

+0

ありがとう!それはすばらしい解決策です。 – user784446

0

私はあなたの質問を理解したら、あなたはこのようなものを持っていますか?

$array = array("A" => array("a","b"), 
       "B" => array("a","b"), 
       "C" => array("a","b")); 

あなたは思考A、B、Cを同時に同じタイミングでループしたいですか?

次に、このようなことができます。

for($i=0;$i<=max(count($array['A']),count($array['B']),count($array['B']))){ 
    if(count($array['A'])<=$i+1) { 
     echo $array['A'][$i]; 
    } 
    if(count($array['B'])<=$i+1) { 
     echo $array['B'][$i]; 
    } 
    if(count($array['B'])<=$i+1) { 
     echo $array['B'][$i]; 
    } 
    $i++; 
} 
2

だろう。

$i = 4; 
$source = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); 
// If you want consecutive elements in the same group, i.e. the first $i elements etc 
$chunks = array_chunk($source, $i); 
foreach($chunks as $chunk) 
{ 
    // Iterate over chunk 
    echo '---<br />'; 
    foreach($chunk as $element) 
    { 
     echo $element . '<br />'; 
    } 
} 
echo '---<br />'; 
echo '---<br />'; 
// Otherwise if you want consecutive elements in separate groups 
$lastElement = count($source) - 1; 
$step = ceil(count($source)/$i); 
for($offset = 0; $offset < $step; $offset++) 
{ 
    echo '---<br />'; 
    for($element = $offset; $element <= $lastElement; $element+= $step) 
    { 
     echo $source[$element] . '<br />'; 
    } 
} 
echo '---<br />'; 
関連する問題