Hallo, ich habe ein Problem mit einem Regexp.Get Array von String PHP Regex
zum Beispiel habe ich diesen Text
$textMessage = "|nif|<00/00/03364301P>|lat|<not set>|long|<not set>|deviceId|<1F26DE6896ADC816-001346E604E7>|messageId|<70154>";
und ich möchte, wie diese mit allen Daten aus dem String
$data = array(
array("nif" => "00/00/03364301P"),
array("lat" => "not set") // etc
)
eine Reihe zu bekommen, habe ich versucht, diese Funktion.
function getArrayDataSMS($textMessage){
$regexType = '/\|([a-zA-Z]+)\||<[\d]+>/';
$rowValueData = preg_match_all($regexType, $textMessage, $matches, PREG_SET_ORDER);
foreach ($matches as $key => $match) {
$arrayData[trim($match[1])] = trim($match[2]);
}
return $arrayData;
}
aber die Antwort ist nicht korrekt
array(2) {
[0]=>
string(5) "|nif|"
[1]=>
string(3) "nif"
}
array(3) {
[0]=>
string(6) "<4545>"
[1]=>
string(0) ""
[2]=>
string(4) "4545"
}
Jede Idee dazu? .
oder einfach explodieren, verschiebung, Brocken von Zweien, foreach Zuordnung zu neuen Container – Ghost
Ich glaube nicht regex hier der gute Weg ist. –
Möchten Sie wirklich ein mehrdimensionales Array oder nur ein einfaches assoziatives Array? –