首页 > 解决方案 > 如何从 csv 获取数据并放入变量并仅获取我想要的值

问题描述

例子

我有 CSV 文件,其中包含 CSV 中随机数示例数据的数据:

639123456789,73999999999,739222222222,839444444444,8639555555555....more

所以,如果我上传它,我希望它在一个变量或一个数组中爆炸,只要我得到特定的数据。我想要获取的数据示例是从 73 开始的所有 2 个第一行,因此这意味着所有仅以 73 开头的数字。

示例:73999999999,739222222222

我已经尝试过使用 split、substr 和 explode 函数仅使用 1 个数字,但我的问题是用户是否输入了没有限制的 CSV 批量数据。

标签: phpcsv

解决方案


您可以使用 substr() 并循环遍历数组,删除不匹配的元素。

$str = '639123456789,73999999999,739222222222,839444444444,8639555555555';

$array = explode(',', $str);  //Convert your string to an array.

$searchString = '73';  //Set the value your looking for.

foreach($array as $key=>$value){

  if(substr($value, 0, 2) != $searchString){  //This will test first two characters.

    unset($array[$key]);

  }

}


$array = array_values($array);

print_r($array);

这将输出:

Array
(
    [0] => 73999999999
    [1] => 739222222222
)

更新

这将创建一个仅包含您想要的数字的新数组,而原始数组保持不变。

$str = '639123456789,73999999999,739222222222,839444444444,739222222222,839444444444,839444444444,73999999999';

$array = explode(',', $str);

$searchString = '73';

foreach($array as $key=>$value){

  if(substr($value, 0, 2) == $searchString){

    $results[] = $value;

  }

}


print_r($results);

推荐阅读