3v4l.org

run code in 300+ PHP versions simultaneously
<?php function letterToColumnNumber(string $letters, int $indexStart = 0): int { static $ordA = ord('A'); $length = strlen($letters); $number = 0; $pow = 1; for ($i = $length - 1; $i >= 0; $i--) { // calculate the value of each letter and add to the total $number += (ord($letters[$i]) - $ordA + 1) * $pow; $pow *= 26; } return $number - (1 - $indexStart); } function rangeStringToRangeArray(string $range, int $indexStart = 0): array { // Parse Excel range expression if (sscanf($range, '%[A-Z]%d:%[A-Z]%d', $startCol, $startRow, $endCol, $endRow) != 4) { throw new Exception('Invalid range expression'); } return [ [ letterToColumnNumber($startCol, $indexStart), $startRow - (1 - $indexStart) ], [ letterToColumnNumber($endCol, $indexStart), $endRow - (1 - $indexStart) ] ]; } echo json_encode(rangeStringToRangeArray('A1:B2')); // returns [[0,0],[1,1]] echo json_encode(rangeStringToRangeArray('A1:B2', 1)); // returns [[1,1],[2,2]]
Output for git.master_jit, git.master, rfc.property-hooks
[[0,0],[1,1]][[1,1],[2,2]]

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
34.65 ms | 405 KiB | 5 Q