繁体   English   中英

将一个数组的第n个元素放入另一个数组PHP

[英]Taking every n-th element of one array and putting it into another array PHP

所以我有一个像这样的array

array(6) { [0]=> string(11) "12323423423" [1]=> string(4) "tito" [2]=> string(6) "235345" [3]=> string(14) " 564534534534" [4]=> string(5) "kralj" [5]=> string(6) "435345" }

根据另一个名为$anotherArray数组中元素的数量,假设$anotherArray有3个元素,我应该将第一个数组的前3个元素放入,然后如果有第二个3个元素,依此类推,然后将它们放入另一个数组。 我这样尝试:

$lengthManuelni=count($string);// $string being array displayed uphere
$lengthAnothera=count($anotherArray);
for ($i = 0; $i < $lengthManuelni; $i += $lengthAnothera) { 
    for ($j = 0; $j < $lengthAnothera; $j++) {
        $restructured [$j] = $string[$i + $j];
        var_dump($restructured);
    }
    }

所以我希望这个$restructured数组看起来像这样:

array(2) { [0]=> string(23) "12323423423,tito,235345" [1]=> string(28) " 564534534534,kralj,435345" }

相反,当我执行var_dump($restructured)它看起来像这样:

array(1) { [0]=> string(11) "12323423423" } array(2) { [0]=> string(11) "12323423423" [1]=> string(4) "tito" } array(3) { [0]=> string(11) "12323423423" [1]=> string(4) "tito" [2]=> string(6) "235345" } array(3) { [0]=> string(14) " 564534534534" [1]=> string(4) "tito" [2]=> string(6) "235345" } array(3) { [0]=> string(14) " 564534534534" [1]=> string(5) "kralj" [2]=> string(6) "235345" } array(3) { [0]=> string(14) " 564534534534" [1]=> string(5) "kralj" [2]=> string(6) "435345" }

请帮助,我对此感到困惑。

使用array_chunkarray_map函数来实现这一点要简单得多:

$restructured = array_map(function($v){
    return implode(",", $v);
}, array_chunk($lengthManuelni, 3));

print_r($restructured);

输出:

Array
(
    [0] => 12323423423,tito,235345
    [1] => 564534534534,kralj,435345
)

http://php.net/manual/en/function.array-chunk.php

暂无
暂无

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

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