Merhaba bir regexp ile ilgili bir sorunum var.string dizisini döndürür php regex
örneğin ben bu metni
$textMessage = "|nif|<00/00/03364301P>|lat|<not set>|long|<not set>|deviceId|<1F26DE6896ADC816-001346E604E7>|messageId|<70154>";
var ve dize gelen tüm verilerle
) bu
$data = array(
array("nif" => "00/00/03364301P"),
array("lat" => "not set") // etc
gibi bir dizi almak istiyorum, ben bu fonksiyonu çalıştı.
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;
}
ancak yanıt
array(2) {
[0]=>
string(5) "|nif|"
[1]=>
string(3) "nif"
}
array(3) {
[0]=>
string(6) "<4545>"
[1]=>
string(0) ""
[2]=>
string(4) "4545"
}
bu konuda herhangi bir fikir doğru değil? .
ya da sadece, vardiya, ikişer ikişer öbek, ben regex kullanarak burada iyi bir yol olduğunu düşünmüyorum yeni konteyner – Ghost
için foreach atama patlayabilir. –
Gerçekten çok boyutlu bir dizi mi yoksa basit bir ilişkilendirme dizisi mi istiyorsunuz? –