我如何从csv获取数据并放入变量并仅获取我想要的值

时间:2018-05-04 03:36:46

标签: php csv

示例

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

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

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

示例:73999999999,739222222222

我通过使用split,substr和explode函数仅使用1个数字来尝试它但我的问题是如果用户输入没有限制的CSV批量数据。

1 个答案:

答案 0 :(得分:0)

您可以使用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);