将 PHP 数组值从字符串转换为整数
Convert PHP array values from string to integer
我是 PHP 的新手。我使用 curl 和正则表达式从 HTML table 中获取具有特定模式的所有数字,如下所示:
preg_match_all("/<td>[0-9]{1,2}\.[0-9]{2}<\/td>/m",$result,$match);
print_r($match);
这是结果数组:($match)
数组([0] => 数组([0] => 10.00 [1] => 10.00 [2] => 10.00 [3] => 1.00 [4] => 12.00 ))
所有值都是字符串,我需要它们作为整数。怎么做?
我试过这个解决方案,但它给出了 0 作为整数(是 10.00)。是因为它是数组中的数组吗?
$test = $match[0][1];
$test2 = (int)$test;
echo $test2
您只需要一个号码捕获组。参见:
preg_match_all("/<td>([0-9]{1,2}\.[0-9]{2})<\/td>/",'<td>10.00</td><td>22.33</td>',$matches);
foreach($matches[1] as $match){
echo (int)$match;
}
尽管您看到的是:
Array ( [0] => Array ( [0] => 10.00 [1] => 10.00 [2] => 10.00 [3] => 1.00 [4] => 12.00 ) )
您的数组中确实还有 HTML,所以它是:
Array ( [0] => Array ( [0] => <td>10.00</td> [1] => <td>10.00</td> [2] => <td>10.00</td> [3] => <td>1.00</td> [4] => <td>12.00</td> ) )
将其转换为 int 是行不通的。因此,通过正则表达式捕获内在价值是一种更好的方法。或者可以使用 strip_tags
。
我是 PHP 的新手。我使用 curl 和正则表达式从 HTML table 中获取具有特定模式的所有数字,如下所示:
preg_match_all("/<td>[0-9]{1,2}\.[0-9]{2}<\/td>/m",$result,$match);
print_r($match);
这是结果数组:($match)
数组([0] => 数组([0] => 10.00 [1] => 10.00 [2] => 10.00 [3] => 1.00 [4] => 12.00 ))
所有值都是字符串,我需要它们作为整数。怎么做? 我试过这个解决方案,但它给出了 0 作为整数(是 10.00)。是因为它是数组中的数组吗?
$test = $match[0][1];
$test2 = (int)$test;
echo $test2
您只需要一个号码捕获组。参见:
preg_match_all("/<td>([0-9]{1,2}\.[0-9]{2})<\/td>/",'<td>10.00</td><td>22.33</td>',$matches);
foreach($matches[1] as $match){
echo (int)$match;
}
尽管您看到的是:
Array ( [0] => Array ( [0] => 10.00 [1] => 10.00 [2] => 10.00 [3] => 1.00 [4] => 12.00 ) )
您的数组中确实还有 HTML,所以它是:
Array ( [0] => Array ( [0] => <td>10.00</td> [1] => <td>10.00</td> [2] => <td>10.00</td> [3] => <td>1.00</td> [4] => <td>12.00</td> ) )
将其转换为 int 是行不通的。因此,通过正则表达式捕获内在价值是一种更好的方法。或者可以使用 strip_tags
。