PHP:列出和分组来自字符串的值对

PHP: List and group value pairs from string

我使用以下几行来计算一个字符串中的值,到目前为止效果很好。 如果字符串的长度和包含的值不同,我如何列出每个值对 的值,如下例

我的 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

非常感谢, 麦克

如果您使用我对您之前 的回答的第二部分中的代码,您可以只对结果数组使用 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

Demo on 3v4l.org