解决方案 »

  1. 没有问题Array
    (
        [ip] => 208.104.70.215
        [iplong] => 3496494807
    )
    Array
    (
        [ip] => 74.101.176.171
        [iplong] => 1248178347
    )
    Array
    (
        [ip] => 73.17.35.30
        [iplong] => 1225859870
    )
    Array
    (
        [ip] => 70.198.197.3
        [iplong] => 1187431683
    )
    Array
    (
        [ip] => 46.44.179.76
        [iplong] => 774681420
    )
    但不知你想干什么
      


  2. <?php
    $dataIp = array('208.104.70.215', '74.101.176.171', '73.17.35.30', '70.198.197.3', '46.44.179.76');foreach ($dataIp as $key=>$value) {
    $data['ip']     =   $value;
    $data['iplong']     =   bindec(decbin(ip2long($value)));                            
    print_r($data);             
    }输出Array
    (
        [ip] => 208.104.70.215
        [iplong] => 3496494807
    )
    Array
    (
        [ip] => 74.101.176.171
        [iplong] => 1248178347
    )
    Array
    (
        [ip] => 73.17.35.30
        [iplong] => 1225859870
    )
    Array
    (
        [ip] => 70.198.197.3
        [iplong] => 1187431683
    )
    Array
    (
        [ip] => 46.44.179.76
        [iplong] => 774681420
    )也是正常的
      

  3. 如果你把 print_r($data); 放到循环外面的话,就只有最后一个了
      

  4. 我的完整代码是这样的
    $dataIp= explode("\n", $_POST['ip']);
    if(empty($dataIp)){
    $this->error('未填写IP!');
    }
    //$dataIp = array('208.104.70.215', '74.101.176.171', '73.17.35.30', '70.198.197.3', '46.44.179.76');
    print_r($dataIp);
    foreach ($dataIp as $key=>$value) {
            $data['ip']     =   $value;
            $data['iplong']     =   bindec(decbin(ip2long($value)));                            
            print_r($data);             
    }
    如果填入第五行数字里面的IP到表单后提交,不管是否注释第五行,打印出来的数组都是一样的。
    但是循环的结果却不同,结果见图。我真不知道怎么会出现这个问题,纠结了好一阵。