Merge Two strings Together at N & X


Merge Two strings Together at N & X

我目前有字符串和整数的混合物,我正试图找出方法来合并每个字符串的值在N

这是我得到的三个字符串/整数:

EncryptedString: npQvFBdZQ4jD6bhAgekjPQ = =

四:Þ)卵巢×,¨½kUVu

哈希:7

因此,合并后的字符串长度为:41个字符。

预期的结果应该是这样的:

7 nÞpaq] vOFVBad×Z, qa4¨j½Dk6UbVhuAgekjPQ = =

所以,Hash是在数组的开始,EncryptedString的片段是每一次偶数迭代(2,4,6,8)..IV将出现在每一个奇数次(不包括1 [So, 3,5,7,9])。直到到达IV的末尾,那么EncryptedString的剩余部分将被附加到字符串的末尾。

这是一个逻辑思维螺丝,我被如何执行这样的事情的迭代难住了

因此,简化:在N和x处合并字符串

N为偶

X为奇数(不包括第一个)

我得出了这个结果。不完全是最优雅的,但它像一个魅力:

function String_Merge($Array){
    $Encrypted_String = $Array['EncryptedString'];
    $IV = $Array['IV'];
    $Hash = $Array['Hash'];
    $EncStr_Arr = str_split($Encrypted_String);
    $Count = strlen($IV);
    $Increment = 0;
    $String = "";
    $String .= $Hash;
    While ($Increment < $Count){
        $String .= $IV[$Increment];
        $String .= $Encrypted_String[$Increment];
        unset($EncStr_Arr[$Increment]);
        $Increment++;
    }
    $Encrypted_String = implode("",$EncStr_Arr);
    return $String.$Encrypted_String;
}