//Php Explode is best way to convert the soap response to PHP array
function soaptoarray($response)
{
$search = array('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"','<soapenv:Header/','<soapenv:Body','</', '<');
$replace = array(' ',' ',' ','@end@', '*start*');
$customer=str_replace($search, $replace, $response);
$soapres =explode('*start*',$customer);
foreach($soapres as $key=>$value)
{
$res[$key]=$value;
$temp=explode('@end@',$value);
$tempval=explode('>',$temp[0]);
$tmp=explode("State",$tempval[0]);
}
$resp{$tempval[0]}=$tempval[1];
}
return $resp;
}
//Output php array similar to:
Array ( [ ] => [p711:getDeviceResponse xmlns:p711="http://provision.xbridge.com"] => [getDeviceResult] => [Status Code="0" Message="Done"/] => [Device Id="B0112121" Phone="12312312331" Serial="8901410423121235279"] => [DeviceStatus] => Deactivated [State Code="0" Name="Deactivated"/] => [Network Id="1" Name="AT&T" Type="Gold"/] => [Customer] => 00001238 [Contract Description="FRED SEIFU" Id="43124" Name="FREDS121"/] => [LLI] => B011218 [APN] => gp102.mo122.net [ICCID] => 89022103423295536629 [MSISDN] => 512233212 [IMSI] => 310423343553527 [PIN1] => 1111 [PUK1] => 412129385 [PIN2] => 2222 [PUK2] => 2222 )