Php 在表中显示两种不同大小的数组

Php 在表中显示两种不同大小的数组,php,arrays,for-loop,html-table,Php,Arrays,For Loop,Html Table,我有两个不同大小的数组,希望在同一个表中并排显示它们 我尝试在一个循环中运行这两个数组,但问题是较短的数组的索引不足 以下是我尝试过的: $clean_s = ['apple','ball','cat','dog']; $clean_r = ['apple','bat','carrot','duck','elephant','fan']; if(sizeof($clean_s) == sizeof($clean_r)) { $max = sizeof($clean_s); } e

我有两个不同大小的数组,希望在同一个表中并排显示它们

我尝试在一个循环中运行这两个数组,但问题是较短的数组的索引不足

以下是我尝试过的:

$clean_s = ['apple','ball','cat','dog'];
$clean_r = ['apple','bat','carrot','duck','elephant','fan'];
if(sizeof($clean_s) == sizeof($clean_r)) {
        $max = sizeof($clean_s);
} else {
        $max = sizeof($clean_s) > sizeof($clean_r) ? sizeof($clean_s) : sizeof($clean_r);
}

$table = '<table><thead><tr><th>Source</th><th>Result</th></thead><tbody>';
for($i=0; $i < $max; $i++) {
   $table .= '<tr><td>'.$clean_s[$i].'</td><td>'.$clean_r[$i].'</td></tr>';
}
您可以在
回显之前进行检查,如下所示:

$table = '<table><thead><tr><th>Source</th><th>Result</th></thead><tbody>';
for($i=0; $i < $max; $i++) {
   $s = isset($clean_s[$i]) ? $clean_s[$i] : '';
   $r = isset($clean_r[$i]) ? $clean_r[$i] : '';
   $table .= '<tr><td>'.$s.'</td><td>'.$r.'</td></tr>';
}
$table='SourceResult';
对于($i=0;$i<$max;$i++){
$s=isset($clean_s[$i])?$clean_s[$i]:'';
$r=isset($clean_r[$i])?$clean_r[$i]:'';
$table.=''.$s.'.$r.';
}

PHP7还可以使用
$s=$clean_s[$i]?''的语法

如果您使用的是PHP7+

$max = max(array_map("count", [$clean_s, $clean_r]));
$table = '<table><thead><tr><th>Source</th><th>Result</th></thead><tbody>';
for($i=0; $i < $max; $i++) {
    $table .= "<tr><td>".($clean_s[$i] ?? "")."</td><td>".($clean_r[$i] ?? "")."</td><tr/>";
}
这将给出传递的数组数,并从中获取最大值


.

感谢您提供了关于获取最大价值的附加解决方案。
$max = max(array_map("count", [$clean_s, $clean_r]));
$table = '<table><thead><tr><th>Source</th><th>Result</th></thead><tbody>';
for($i=0; $i < $max; $i++) {
    $table .= "<tr><td>".($clean_s[$i] ?? "")."</td><td>".($clean_r[$i] ?? "")."</td><tr/>";
}
$max = max(array_map("count", [$clean_s, $clean_r]));