<?php

function Descompacta($string) {

	$myArray = [];
	$str; 
	$str2; 
	$arr;
	$arr2;
	$lat;
	$lng; 
	$f;
	$strings = explode(" ",$string);

	for ($i=0; $i<count($strings); $i++) {

		$str = $strings[$i];
		$str2 = '';
		$arr = [];
		$arr2 = [];

		for ($j=0; $j<strlen($str); $j++) {

			switch (substr($str, $j, 1)) {

				case 'A': $str2 .= ',0';	break;
				case 'B': $str2 .= ',1';	break;
				case 'C': $str2 .= ',-1';	break;
				case 'D': $str2 .= ',2';	break;
				case 'E': $str2 .= ',-2';	break;
				case 'F': $str2 .= ',3';	break;
				case 'G': $str2 .= ',-3';	break;
				case 'H': $str2 .= ',4';	break;
				case 'I': $str2 .= ',-4';	break;
				case 'J': $str2 .= ',5';	break;
				case 'K': $str2 .= ',-5';	break;
				case 'L': $str2 .= ',6';	break;
				case 'M': $str2 .= ',-6';	break;
				case 'N': $str2 .= ',7';	break;
				case 'O': $str2 .= ',-7';	break;
				case 'P': $str2 .= ',8';	break;
				case 'Q': $str2 .= ',-8';	break;
				case 'R': $str2 .= ',9';	break;
				case 'S': $str2 .= ',-9';	break;
				default: $str2 .= substr($str, $j, 1);
			}
		}

		$arr = explode(",", $str2);
		$f = array_shift($arr);
		$lng = intval($arr[0])/$f;
		$lat = intval($arr[1])/$f;
		array_push($arr2,[$lat, $lng]);

		for ($j=2; $j<count($arr); $j+=2) {

			$lng += intval($arr[$j])/$f;
			$lat += intval($arr[$j+1])/$f;
			array_push($arr2,[$lat, $lng]);
		}

		array_push($myArray,$arr2);
	}

	return $myArray;
}

$output = Descompacta('1000I6575E3374BCBAACBABABABABBABBAABBBABBAABBABBDABAABBBABBAABBAABBABAABBBABBAABBBABBBBAABBAACBABCBABAABBABCBAACBCACB');

var_dump($output);