问题描述:foreach 循环二维数组寻找符合条件的内容重组成新二维数组,获取出来的数字字符串与数字比较,无法进行比较,尝试将数字字符转为int类型,所有结果都变成0;(以下代码可直接运行)
//创建curl资源
$ch=curl_init();
//设置url和对应项
curl_setopt($ch, CURLOPT_URL, "http://match.sports.sina.com.cn/football/csl/opta_rank.php?item=shoot&year=2014&lid=8&type=1&dpc=1");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //以文件形式返回而不是直接输出
$data=curl_exec($ch);
$my_file=fopen("shoot.html",'w') or die('no file');
fwrite($my_file, $data);
fclose($my_file);
curl_close($ch);
$my_file=fopen("shoot.html",'r');
$res= fread($my_file,filesize("shoot.html"));
fclose($my_file);
//步骤2获取table内容转为数组
$str1 = preg_replace("/<a[^>]*>/","", $res);
$str2 = preg_replace("/<\/a>/","", $str1);
preg_match('/<table[^>]*? class="tab01">(.*?)<\/table>/s',$str2,$match);
preg_match_all('/<td.*?>.*?<\/td>/i',$match[0],$e1);
foreach ($e1[0] as $k=>$v){
$shoot_arr[ceil(($k+1)/8)-1][]=$v;
}
shuffle($shoot_arr); //随机排序
$left_10to50_arr=array();
//var_dump($shoot_arr);
foreach($shoot_arr as $keys=>$vals){ //
$leftfoot=$shoot_arr[$keys][4];
echo '<br/>';
var_dump($leftfoot);
echo '<br/>';
var_dump((int)$leftfoot); //强制转换为整型 数据变成0
//获取满足条件的数据重组数组
if($leftfoot >= 10 && $leftfoot<=50){ //不转换数据类型无法比较大小
$left_10to50_arr[]=$vals;
}
if($keys>3)exit;
}
echo '<pre>';
print_r($left_10to50_arr);
echo '</pre>';
exit;二维数组格式如下:

数字字符转换后变为0,情况如下:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
豆不够了是什么意思?上面这一位仁兄,p豆?
333
44444444444444433333333333
要 豆1子要2豆3子0豆0子-要=豆43子2要2豆4子4要
豆不够了豆不够了豆不够了豆不够了豆不够了豆不够了豆不够了
豆不够了豆不够了豆不够了豆不够了豆不够了豆不够了