PHP数组循环分配:将38条$result记录匹配到3条用户数组记录
解决方案
你的问题出在直接用$resultado的索引匹配用户数组的索引,当索引超过用户数组长度(3)时,isset($resultado_users_auris_en_turno[$index])返回false,导致后续记录未被处理。要实现循环分配,需用取模运算让用户数组的索引循环复用。
修正后的代码
$items = array(); // 获取用户数组长度,用于取模实现循环 $userCount = count($resultado_users_auris_en_turno); foreach ($resultado as $index => $code) { // 通过取模计算当前分配的用户索引,实现0→1→2→0→1→2的循环 $userIndex = $index % $userCount; // 拼接成需求的格式 $item = $resultado_users_auris_en_turno[$userIndex] . ' - ' . $code; $items[] = $item; } // 输出结果 print_r($items);
代码说明
$userCount = count($resultado_users_auris_en_turno):先获取用户数组的总条数(此处为3)。$userIndex = $index % $userCount:取模运算会让索引始终在0到$userCount-1之间循环。例如:$index=0→0%3=0→ 取第1个用户$index=3→3%3=0→ 再次取第1个用户$index=4→4%3=1→ 取第2个用户,以此类推。
- 此逻辑会将
$resultado的38条记录全部按顺序分配给3个用户,循环往复。
预期输出
运行后$items数组会生成需求格式:
Array ( [0] => KNEIRAG - 105272637 [1] => TGOMEZA - 105272638 [2] => JPACHECOM - 105272800 [3] => KNEIRAG - 105269374 [4] => TGOMEZA - 105269375 [5] => JPACHECOM - 105269378 ... // 剩余32条记录按此规律循环分配 )
内容的提问来源于stack exchange,提问作者javiernacho1995
相关产品推荐
相关产品推荐

