繁体   English   中英

选择多个数组元素

[英]Selecting multiple array elements

PHP中有没有一种方法可以一次选择多个数组元素,例如,在for循环中,$ i =要选择的第一个集合的大小,然后后续递增表示从数组中选择该大小的下一个集合- ?

谢谢!

即不是一次循环遍历一个数组元素,而是循环遍历选定的对(例如3个元素,然后对这3个元素做一些事情)。

有很多方法可以做到。
一个会是

$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
}

这取决于您要如何对元素进行分组。

$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 />';

如果我明白您的问题,您有这样的想法吗?

$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++;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM