2016-05-15 13 views
0

私は何をする必要があるかにある程度の方向性と明確さを持つことができますか?私は入力(テキスト入力)を取って、配列に変換できるCSVファイルを検索しています。多次元配列の検索と印刷

は、私がこれでそれを検索するために考え出した:

$keys = array_keys(array_column($csv, 0), $SearchThis); 
$csvは私の配列(多次元)で

、そして$SearchThisが検索に入力されます。

私の問題は$keysは、データが中に見出された行の値を持つ配列を作ることである。

Iメインアレイ$csvからそれらの行を有する表を表示できるようにします。 (各行にはテーブルに表示されるデータのリストがあります)

私はPHPをかなり新しくしています。これは簡単な修正だと思いますか?

助けていただければ幸いです。特に$csvを仮定などのアレイから

答えて

0

あなたのコードはすでに正しい行を返している場合は、すべてを行う必要がある行のみが含まれるように、配列をフィルタリングしています。たとえば、

$keys = array_keys(array_column($csv, 0), $SearchThis); // Your original code 
$new_csv = [];           // [] is shorthand for an empty array. 
foreach($keys as $index) {        // Iterate over the keys 
    $new_csv[] = $csv[$index];       // Copy the matching rows to our new array 
} 

$new_csvには、元のものと一致する行のみが含まれるようになりました。

+0

これは私が必要としていたものでした。どうもありがとうございました!!! –

0

を行を取るの背後にある論理はその後、おそらく返すコールバックとCSVの行ごとarray_filterを望むタイプ

[ 
    [ cell1, cell2, ... ], 
    ... 
] 

である配列であります行に含めるように真、行を除外する場合はfalse:まあ

$searchStr = '123'; 
array_filter($csv, function($row) use (&$searchStr) { 
    return $row[0] == $searchStr; 
});