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