搜索和打印多维数组

时间:2016-05-15 08:15:42

标签: php arrays

想知道我是否可以在我需要做的事情上有一些方向和清晰度。我正在输入(文本输入)并搜索可以转换为数组的CSV文件。

我已经想出用它来搜索它:

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

$csv是我的数组(多维),$SearchThis是要搜索的输入。

我的问题是$keys创建一个数组,其中包含找到数据的行的值。

我希望能够显示一个包含主数组$csv之外的行的表。 (每行都有一个将在表格中显示的数据列表。)

我对PHP很新,所以我希望这是一个简单的解决方法吗?

任何帮助将不胜感激。特别是从数组等中获取行的逻辑。

2 个答案:

答案 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现在只包含原始匹配的行。