2016-05-15 77 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; 
});