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()であり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 に答える