Maison  >  Questions et réponses  >  le corps du texte

La boucle foreach de la chaîne numérique du tableau bidimensionnel ne peut pas être comparée à un nombre. Essayez de la convertir en type int et le résultat deviendra directement 0.

Description du problème : foreach boucle le tableau bidimensionnel pour trouver le contenu qui répond aux conditions et le réorganise en un nouveau tableau bidimensionnel. La chaîne numérique obtenue est comparée au nombre et ne peut pas être comparée. tapez, et tous les résultats deviennent 0 ; (Le code suivant peut être exécuté directement)

        //创建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;

Le format du tableau à deux dimensions est le suivant :

QQ图片20170929162436.png

Les caractères numériques deviennent 0 après la conversion, la situation est la suivante :

QQ截图20170929162647.jpg


焚天驻地焚天驻地2550 Il y a quelques jours1520

répondre à tous(6)je répondrai

  • 朽木

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

    Qu'est-ce que cela signifie pas assez de haricots ? Le cher ami ci-dessus, p bean ?

    répondre
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:35:02

    333

    répondre
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:34:54

    44444444444444433333333333

    répondre
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:22:52

    Je veux 1 haricot 2 haricot 3 haricot 0 haricot 0 haricot - haricot = haricot 43 haricot 2 haricot 2 haricot 4 haricot 4 haricot

    répondre
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:14:58

    Pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots

    répondre
    0
  • phpcn_u38476

    phpcn_u384762017-10-02 23:14:40

    Pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots, pas assez de haricots

    répondre
    0
  • Annulerrépondre