>  Q&A  >  본문

2차원 배열 숫자 문자열의 foreach 루프는 숫자와 비교할 수 없습니다. 이를 int 유형으로 변환하면 결과가 바로 0이 됩니다.

문제 설명: foreach는 조건에 맞는 콘텐츠를 찾기 위해 2차원 배열을 반복하고 이를 새로운 2차원 배열로 재구성합니다. 얻은 디지털 문자열은 숫자와 비교되며 비교할 수 없습니다. 디지털 문자를 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;

2차원 배열의 형식은 다음과 같습니다.

QQ图片20170929162436.png

숫자 문자는 변환 후 0이 되며 상황은 다음과 같습니다.

QQ截图20170929162647.jpg


焚天驻地焚天驻地2600일 전1559

모든 응답(6)나는 대답할 것이다

  • 朽木

    朽木2017-10-23 19:59:56

    콩이 부족하다는 건 무슨 뜻인가요? 위의 소중한 친구, 피빈?

    회신하다
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:35:02

    333

    회신하다
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:34:54

    44444444444444433333333333

    회신하다
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:22:52

    원두 1빈 2빈 3빈 0빈 0빈 - 콩 = 콩 43빈 2빈 2빈 4빈 4빈

    회신하다
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:14:58

    콩이 부족해요, 콩이 부족해요, 콩이 부족해요, 콩이 부족해요, 콩이 부족해요, 콩이 부족해요, 콩이 부족해요

    회신하다
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:14:40

    콩이 부족해, 콩이 부족해, 콩이 부족해, 콩이 부족해, 콩이 부족해, 콩이 부족해

    회신하다
    0
  • 취소회신하다