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

PHP中如何根据另一数组对应元素值重复数组元素并拼接?

解决PHP数组元素按对应数组指定次数重复的问题

你的需求是将数组$a的每个元素,按照数组$b对应位置的数值重复指定次数,最终拼接成连续字符串。原代码存在几个问题导致输出不符合预期:

  • 未关联两个数组的对应元素:原代码只遍历了$b,没有获取$a中需要重复的目标值,反而输出了循环变量$i,逻辑完全偏离需求。
  • 错误使用print_r:print_r()函数会直接输出参数内容,同时返回布尔值true(转换为字符串是"1"),所以echo print_r($i).'<br>'会先输出$i,再输出1和换行符,这就是你看到11、21这类输出的原因。
  • 多余的换行符:代码中添加了<br>,导致输出被换行分割,无法得到连续的目标字符串。

方法一:使用索引遍历 + str_repeat函数

str_repeat是PHP内置的字符串重复函数,可以直接将指定字符串重复指定次数,简洁高效:

<?php
$a = array(1, 2, 3);
$b = array(3, 2, 5);
$result = '';

// 遍历数组索引,同时获取$a和$b对应位置的元素
for ($i = 0; $i < count($a); $i++) {
    // 将$a的元素转为字符串,重复$b指定的次数后拼接到结果
    $result .= str_repeat((string)$a[$i], $b[$i]);
}

echo $result; // 输出:1112233333
?>

方法二:遍历$a并通过索引获取$b的次数

如果习惯用foreach遍历,也可以通过元素索引关联两个数组:

<?php
$a = array(1, 2, 3);
$b = array(3, 2, 5);
$result = '';

foreach ($a as $index => $value) {
    $result .= str_repeat((string)$value, $b[$index]);
}

echo $result; // 输出:1112233333
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:52:48