PHP: список и пара значений группы из строки - PullRequest
0 голосов
/ 13 октября 2019

Я использую следующие строки для подсчета значений в строке, которая пока работает нормально. Как я могу перечислить значения для каждой пары значений , как в примере ниже , если длина моей строки и содержащихся в ней значений варьируется ?

Мой PHP (пока):

$str= '101(2)_102(3)_103(5)';
preg_match_all('/(?<=^|_)([^(]+)\((\d+)\)(?=_|$)/', $str, $matches);
$ids = $matches[1];
$counts = $matches[2];

Ожидаемый результат (пример):

id1: 101, count1: 2
id2: 102, count2: 3
id3: 103, count3: 5

Многиезаранее спасибо, Майк

1 Ответ

2 голосов
/ 13 октября 2019

Если вы используете код из второй части моего ответа на свой предыдущий вопрос , вы можете просто использовать цикл foreach над массивом результатов:

$cookie = '101(2)_102(3)_103(5)';
preg_match_all('/(?<=^|_)([^(]+)\((\d+)\)(?=_|$)/', $cookie, $matches);
$counts = array_combine($matches[1], $matches[2]);
$i = 1;
foreach ($counts as $id => $count) {
    echo "id$i: $id, count$i: $count\n";
    $i++;
}

Вывод:

id1: 101, count1: 2
id2: 102, count2: 3
id3: 103, count3: 5

Демонстрация на 3v4l.org

...