2016-05-19 9 views
-2
私は例

マッチ変数値賢明

$brands = 'Applica'; 

とテキストファイルの内容などのために、テキストファイルの行を持つ変数の値を一致させたい

- 4行のがあるので

'applica' = 'Applica','Black and Decker','George Foreman' 
'black and decker' = 'Black and Decker','Applica' 
'amana' = 'Amana','Whirlpool','Roper','Maytag','Kenmore','Kitchenaid','Jennair' 
'bosch' = 'Bosch','Thermador' 

テキストファイル。

と各行の最初の単語は、同等のブランドと互換性のあるブランドです。

applicaよう

は「Applica」と「ブラック&デッカー」と「ジョージ・フォアマン」

と互換性があり、私は言葉applicaで変数$brandsに一致するようにしたいし、それがその後、一致した場合、新規に'Applica','Black and Decker','George Foreman'ような値に彼らの同等を保存変数。

ガイダンスをご提供ください。

ありがとうございました。

アップデート - ブランドはapplicaます$ equalvaluesに等しい場合、これは

$matches = explode("\n", "'applica' = 'Applica','Black and Decker','George Foreman'\n'black and decker' = 'Black and Decker','Applica'\n'amana' = 'Amana','Whirlpool','Roper','Maytag','Kenmore','Kitchenaid','Jennair'\n'bosch' = 'Bosch','Thermador'"); 
    $brand = "applica"; 
    $equalValues = []; 
    foreach ($matches as $key => $value) { 
     $keyMatch = str_replace("'", "", trim(explode('=', $value)[0])); 
     $valuesMatch = explode('=', $value)[1]; 
     $escapedDelimiter = preg_quote("'", '/'); 
     preg_match_all('/' . "'" . '(.*?)' . "'" . '/s', $valuesMatch, $matches); 
     if ($brand == $keyMatch) { 
      $equalValues = $matches[1]; 
     } 
    } 

    var_dump($equalValues); 

を動作するはず

<?php 
$brands = "brands.txt"; 
$contents = file_get_contents($brands); 
$brandsfields = explode(',', $contents); 
$csvbrand = 'applica'; 

foreach($brandsfields as $brand) { 
     $newname = substr($brand,1,-1); 
    echo $newname . "\t"; 
    } 

?> 
+0

mysqlについては、mysqlタグを削除してください。 – Blank

+0

私はそれがmysqlを必要とすると思った。なぜなら私はmysql dbからブランド名を取り出してテキストファイルの行と一致させるからです。 – Steve

+0

@ Steveあなたの問題は解決しましたか? –

答えて

1
preg_match_all("/'" . $csvbrand ."' = (.*)/", $contents, $output_array); 

$names = explode(",", str_replace("'", "", $output_array[1][0])); 

Var_dump($names); // results in -> 
//Applica 
//Black and Decker 
//George Foreman 
+0

@Steveは泥と同様に透明です。 brands.txtには何があり、どのようにフォーマットされていますか?何を検索してほしいですか?コードの残りの部分で$ csvbrandが使用されていないのはなぜですか? – Andreas

+0

申し訳ありません。しかし、ソフィーヌの答えは私の問題を解決する。ご指導ありがとうございます。 – Steve

+0

@スティーブ私はあなたが意味すると信じているものを更新しました。受け入れたコードははるかに長く、不確実なステップがあります。 – Andreas

2

に等しいことshoud:あなたの質問がされていない場合

array(3) { 
    [0]=> 
     string(7) "Applica" 
    [1]=> 
     string(16) "Black and Decker" 
    [2]=> 
     string(14) "George Foreman" 
} 
+0

ありがとうございます..その完璧な.. – Steve

+0

私の喜び。 :) –

+0

あなたのコードを説明してください。私はコードをコピーして貼り付けたくありません。私はまた学びたい。私はあなたのコードを使用していて、 '$ brand = trim(data [0]);のような$ brand変数にcsvファイルのカラム値を代入しているので、' $ equalValues = [];で '' Parse syntax error unexpected [] ' '[]'は不要です。これをチェックして、空の角括弧で何を意味するのか教えてください。 – Steve

関連する問題