0

下面的脚本显示了文本文件中的搜索字符串,我的文本文件的内容如下:

60、1、1、188、pdgje5566

60、1、1、188、pdgje5565

if(!empty($extTxId)){
$searchfor = $extTxId;

$matches = array();

$handle = @fopen($file, "r");
if ($handle)
{
    while (!feof($handle))
    {
        $buffer = fgets($handle);
        if(strpos($buffer, $searchfor) !== FALSE)
            $matches[] = $buffer;
    }
    fclose($handle);
}

print_r($matches);

它输出为

数组 ( [0] => 60, 1, 1, 188, ppje5566 )

但是我想分解由逗号(,)分隔的数据并存储到变量中,无论如何都要这样做吗?

谢谢。

4

4 回答 4

4

我想分解用逗号(,)分隔的数据

使用explode().

如果这是一个 CSV 文件(或其他一些分隔文件),我建议查看fgetcsv(). 它是有效的fgets()and explode(),这似乎是你所需要的。

于 2012-09-25T13:37:31.783 回答
2

由于每个逗号之间都有空格,因此您可以修剪每个元素。

// Iterate through each item int the array (you can do $matches[0] if you just want the first)
foreach ($matches as $match)
{
     $output_array = array_map('trim',explode(',',$match));

     print_r($output_array);
}

输出:

Array
(
    [0] => 60
    [1] => 1
    [2] => 1
    [3] => 188
    [4] => pdgje5565
)

示例:http ://codepad.org/aSyVX5Bj

于 2012-09-25T13:40:39.803 回答
0

试试喜欢

foreach(Array[0] as $element)
{
     echo $element;
}
于 2012-09-25T13:38:23.197 回答
0

如果您知道所获得输入的确切结构,则可以执行以下操作:

$string = '60, 1, 1, 188, pdgje5565';
// Using trim just to be sure
list($varA, $varB, $varC, $varD, $varE) = explode(', ', trim($string));

这样,您将获得如下结果:

$varA = 60;
$varB = 1;
$varC = 1;
$varD = 188;
$varE = 'pdgje5565';

这里的主要优点是您将获得体面的变量而不是具有抽象索引的数组,但只有当您确定您的结构是恒定的时它才是好的。

于 2012-09-25T13:44:51.953 回答