2016-05-15 157 views
0

想知道我是否可以在我需要做的事情上有一些方向和清晰度。我正在輸入(文本輸入)並搜索可以轉換爲數組的CSV文件。搜索和打印多維數組

我想通了與此搜索一下:

$keys = array_keys(array_column($csv, 0), $SearchThis); 

哪裏$csv是我的數組(多維)和$SearchThis是要搜索的輸入。

我的問題是$keys使陣列與行的數據是在找到的值。

我希望能夠顯示與這些行的表出主陣列$csv的。 (每行都有一個將在桌面上顯示的數據列表。)

我對PHP相當陌生,所以我希望這是一個簡單的解決方法?

任何幫助將不勝感激。特別是從背後陣列等

回答

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取行中的邏輯是一個數組,它是類型

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

然後,你可能會想的array_filter在CSV的每一行與一個返回一個回調真正以包括划船,假以排除該行:

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