php – 在数组中推进索引键
我有一个数字递增键的数组从0开始,如0 1 2 3 4 5 ….等.我需要以下列方式为数组分配新密钥
>前三个键保留其索引号 我知道我需要使用foreach循环(似乎是最简单的方法)来构建具有新分配键的新数组.我的问题是计算密钥 这是我所看到的关系 这是我当前的数组键
这就是我需要它们
让我们将其分解为3个关键组,顶部是旧的数组键,底部是新的数组键 第一组
第二组
第3组
第四组
等等…… 当您查看两个数组键之间的关系时,您将看到以下内容: >旧数组键0,1和2保持其键值 或者,如果从新密钥中减去旧密钥,则会得到以下答案 第一组> 0 可能的解决方案 我能想到的唯一解决方案是使用模数运算符(在我的foreach循环内),根据模数结果检查当前键,然后计算我的新键 例: if ( $key%3 == 0 && $key != 0 ) { $new_key = $key * 2; } elseif ( ( $key - 1 ) %3 == 0 && $key != 1 ) { $new_key = ( $key * 2 ) - 1; } elseif ( ( $key - 2 ) %3 == 0 && $key != 2 ) { $new_key = ( $key * 2 ) - 2; } else { $new_key = $key; } $new_array[$new_key] = $value; 我的问题 难道没有更聪明的数学方法吗? 解决方法
请尝试以下方法:
$new_key = floor($old_key / 3) * 3 + $old_key (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |