// Ex. 1: signedShiftArray (['A', 'B', 'C', 'D'], 2)        ->        ['C', 'D', 'A', 'B']// Ex. 2: signedShiftArray (['A', 'B', 'C', 'D'], -3)        ->        ['B', 'C', 'D', 'A']// Ex. 3: signedShiftArray (['A', 'B', 'C', 'D'], -7)        ->        ['B', 'C', 'D', 'A']function signedShiftArray ($aItems, $aOffset){    if (empty ($aItems))        return [];    else if (empty ($aOffset))        return $aItems;    else {        $t= count ($aItems);        $n= $aOffset % $t;        $m= $aOffset > 0 ? $n : $t + $aOffset;        return array_merge (array_slice ($aItems, $n), array_slice ($aItems, 0, $m));    }}