You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP按另一数组值重复数组元素的循环实现咨询

解决PHP数组元素按对应位置数值重复的问题

嘿,你已经摸到门道啦!只需要在你现有的循环外面套一层控制重复次数的循环就行,我给你一步步拆解清楚:

核心思路

我们需要两层循环配合完成需求:

  • 外层循环:遍历$arr1和$arr2的索引(两个数组长度一致,用哪个的长度判断都可以)
  • 内层循环:根据$arr1[$i]的数值,重复将$arr2[$i]添加到$arr3中

完整代码实现

$arr1 = array(2,3,4,5); 
$arr2 = array(1,2,3,4); 
$arr3 = array(); 

// 外层循环遍历每一组对应位置的元素
for($i = 0; $i < count($arr1); $i++){
    // 内层循环:按照arr1对应位置的数值重复添加元素
    for($j = 0; $j < $arr1[$i]; $j++){
        array_push($arr3, $arr2[$i]);
    }
}

// 打印结果验证
print_r($arr3);

代码细节说明

  1. 外层循环的$i从0到count($arr1)-1,确保能遍历到每一对对应位置的元素
  2. 内层循环的次数由$arr1[$i]决定:比如当$i=0时,$arr1[0]是2,所以会把$arr2[0](也就是1)添加2次
  3. 顺便修正了你原来代码里的小疏漏:$++应该是$i++,不然会触发语法错误哦

运行这段代码后,$arr3就会得到你想要的结果:

Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 2
    [4] => 2
    [5] => 3
    [6] => 3
    [7] => 3
    [8] => 3
    [9] => 4
    [10] => 4
    [11] => 4
    [12] => 4
    [13] => 4
    [14] => 4
)

可选优化方案

如果担心循环中反复调用count($arr1)影响性能,可以先把数组长度存起来:

$length = count($arr1);
for($i = 0; $i < $length; $i++){
    // 内层循环逻辑不变
}

内容的提问来源于stack exchange,提问作者Felix Candra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:10:34