【发布时间】:2015-03-03 16:33:58
【问题描述】:
来自其他线程的用户帮助我弄清楚如何从数组中获取数字,但现在我无法获取“-”破折号之后的数字。让我向你展示我所拥有的东西,然后让你了解情况。
我有一个包含下一个内容的数组:
Array(
[0] => <tr><td>29/06/2015</td><td>19:35</td><td>12345 Column information</td><td>67899 Column information - 12</td><td>Information</td><td>More information</td></tr>
[1] => <tr><td>12/03/2015</td><td>10:12</td><td>98545 Column information</td><td>67659 Column information - 32</td><td>Information</td><td>More information</td></tr>
[2] => <tr><td>11/02/2015</td><td>12:40</td><td>59675 Column information</td><td>94859 Column information - 11</td><td>Information</td><td>More information</td></tr>
[3] => <tr><td>01/01/2015</td><td>20:12</td><td>69365 Column information</td><td>78464 Column information - 63</td><td>Information</td><td>More information</td></tr>
)
我终于知道如何获取每个数字(破折号“-”后面的数字除外):
$re = "/.*?(\\d+)\\s.*?(\\d+)\\s.*/m";
$str = "<tr><td>29/06/2015</td><td>19:35</td><td>12345 Column information</td><td>67899 Column information - 12</td><td>Information</td><td>More information</td></tr>";
$subst = "$1, $2";
$result = preg_replace($re, $subst, $str);
这是 $result;输出:
foreach($result as $finalresult) echo $finalresult.'<br>';
12345,67899
98545,67659
59675,94859
69365,78464
我对所有这些过程的期望并且无法弄清楚的是在破折号“-”之后也得到数字:
12345,67899-12
98545,67659-32
59675,94859-11
69365,78464-63
但这并没有在这里结束......当破折号“-”后面的数字低于 50 时,我需要转换 $result 输出。请参见下面的示例。 如果“-”之后的数字
12345,67899-12 ------> 12345,67899-01
98545,67659-32 ------> 12345,67899-03
59675,94859-11 ------> 12345,67899-01
52375,53259-49 ------> 12345,67899-04
69365,73464-63 ------> 12345,67899-63
89765,12332-51 ------> 12345,67899-51
38545,54213-70 ------> 12345,67899-70
现在是我的头爆炸的时候!
在此之前非常感谢您的帮助。
【问题讨论】:
标签: php html arrays regex numbers