doubengman2072 2015-04-04 17:15
浏览 7
已采纳

检查文件中的int或字符串

I'm trying to open an input file containing a variety of data type. Something like this:

Woof 
50 
Meow 
30 
//...

And I'm not quite sure how to do it. I've googled for ways to do it and I found something like ctype_digit, is_digit, and is_string. I tested them out and I'm still not getting the expected result.

This is the code snippet I am using:

// Sorts the array by requested data type
function sortArray($anArray, $dataType){

    $array_string = array();
    $array_int = array();

    foreach ($anArray as $element){
        if (ctype_digit($element)){
            array_push($array_int, $element);
        }
        elseif (ctype_alpha($element)){
            array_push($array_string, $element);
        }
    }

    if ($dataType == "int"){
        return $array_int;
    }
    elseif ($dataType == "String"){
        return $array_string;
    }
} // end function sortArray($anArray, $dataType)

Can anyone help point out why it's not working?

  • 写回答

2条回答 默认 最新

  • douxin1884 2015-04-04 17:27
    关注

    Well your function seems way to complicated. Just filter all other values which you don't want with array_filter() out like this:

    <?php
    
        //As an example to get the data from the file nice and quick
        $lines = array_map("trim", file("test.txt", FILE_IGNORE_NEW_LINES));
    
        function filterArrayByType($arr, $type = "int") {
            return array_filter($arr, ($type === "int"?"ctype_digit":"ctype_alpha"));
        }
    
        $result = filterArrayByType($lines, "string"); //"int"
        print_r($result);
    
    ?>
    

    output:

    Array ( [0] => Woof [2] => Meow )  //Array ( [1] => 50 [3] => 30 )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况