Возьми часть строки (PHP) - PullRequest
       3

Возьми часть строки (PHP)

1 голос
/ 27 сентября 2010

Мы пытаемся получить определенные части строки.

У нас есть строка:

location:32:DaD+LoC:102AD:Ammount:294

И мы хотели бы поместить информацию в разные строки. Например $location=32 и $Dad+Loc=102AD

Значения варьируются в зависимости от строки, но она всегда будет иметь такую ​​конструкцию: location:{number}:DaD+LoC:{code}:Ammount:{number}

Итак ... как мы можем получить эти значения?

Ответы [ 6 ]

3 голосов
/ 27 сентября 2010

Это дало бы то, что вы хотите, но, например, $ dad + Loc - недопустимое имя переменной в PHP, поэтому оно не будет работать так, как вы хотите, лучше работать с массивом или объектом stdClass вместо отдельных переменных.

  $string = "location:32:DaD+LoC:102AD:Ammount:294";
  $stringParts = explode(":",$string);
  $variableHolder = array();
  for($i = 0;$i <= count($stringParts);$i = $i+2){
      ${$stringParts[$i]} = $stringParts[$i+1];
  }

  var_dump($location,$DaD+LoC,$Ammount);
2 голосов
/ 27 сентября 2010

Используя preg_split и отображая полученный массив в ассоциативный.Как это:

$str  = 'location:32:DaD+LoC:102AD:Ammount:294';
$list = preg_split('/:/', $str);

$result = array();
for ($i = 0; $i < sizeof($list); $i = $i+2) {
    $result[$array[$i]] = $array[$i+1];
};

print_r($result);
2 голосов
/ 27 сентября 2010

Легкое ускоренное движение вперед:

$string = "location:32:DaD+LoC:102AD:Ammount:294";

$arr = explode(":",$string);

$location= $arr[1];
$DaD_LoC= $arr[3];
$Ammount= $arr[5];
2 голосов
/ 27 сентября 2010

$ StringArray = explode (":", $ string)

0 голосов
/ 27 сентября 2010

кажется, никто не может сделать это правильно

$string = "location:32:DaD+LoC:102AD:Ammount:294";
list(,$location,, $dadloc,,$amount) = explode(':', $string);
0 голосов
/ 27 сентября 2010

функция php split не рекомендуется, поэтому вместо этого рекомендуется использовать preg_split или explode. очень полезна в этом случае функция list ():

list($location, $Dad_Loc, $ammount) = explode(':', $string);

EDIT: мой код содержит ошибку:

list(,$location,, $Dad_Loc,, $ammount) = explode(':', $string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...