想知道我是否可以在我需要做的事情上有一些方向和清晰度。我正在输入(文本输入)并搜索可以转换为数组的CSV文件。
我已经想出用它来搜索它:
$keys = array_keys(array_column($csv, 0), $SearchThis);
$csv
是我的数组(多维),$SearchThis
是要搜索的输入。
我的问题是$keys
创建一个数组,其中包含找到数据的行的值。
我希望能够显示一个包含主数组$csv
之外的行的表。 (每行都有一个将在表格中显示的数据列表。)
我对PHP很新,所以我希望这是一个简单的解决方法吗?
任何帮助将不胜感激。特别是从数组等中获取行的逻辑。
答案 0 :(得分:0)
假设$csv
是一个
[
[ cell1, cell2, ... ],
...
]
然后,您可能希望CSV中的每一行都有一个array_filter
,其回调返回true以包含到行,而false则排除该行:
$searchStr = '123';
array_filter($csv, function( $row ) use ( &$searchStr ) {
return $row[0] == $searchStr;
});
答案 1 :(得分: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
现在只包含原始匹配的行。