Php 在表中显示多个数组

Php 在表中显示多个数组,php,arrays,Php,Arrays,我有5个数组 $array1 = array('ar1_1','ar1_2','ar1_3','ar1_4'); $array2 = array('ar2_1','ar2_2','ar2_3','ar2_4','ar2_5'); $array3 = array('ar3_1','ar3_2','ar3_3','ar3_4','ar3_5','ar3_6'); $array4 = array('ar4_1','ar4_2','ar4_3','ar4_4');

我有5个数组

    $array1 = array('ar1_1','ar1_2','ar1_3','ar1_4');
    $array2 = array('ar2_1','ar2_2','ar2_3','ar2_4','ar2_5');
    $array3 = array('ar3_1','ar3_2','ar3_3','ar3_4','ar3_5','ar3_6');
    $array4 = array('ar4_1','ar4_2','ar4_3','ar4_4');
    $array5 = array('ar5_1','ar5_2','ar5_3');
    $loc = array('AM','IN','US');
我想以一种方式展示它

<table>
<tr class="d1 vevent">
<td>
<b><abbr class="dtstart" title="' . $array1 . '">' . $array2 . '</abbr></b> <br>' . $array3 . '</td>
<td>
<span class="summary">' . $array4 . ' - ' . $array5 . '</span>
<span class="location">' . $loc . '</span>
</td>
</tr>
</table>

';
回声';
回声定位;
回声';
回声'
';
}
回声';

这是我尝试过的代码,但是foreach循环每次都会多次迭代for循环迭代。

我可以建议您为此使用一个类吗?如下所示:

class myClass(){
    public $title;
    public $var1;
    public $var2;
    public $var3;
    public $var4;
    public $var5;
    public $loc;

    public function __construct($title, $var1, $var2, $var3, $var4, $var5){
         $this->title = $title;
         $this->var1 = $var1;
         $this->var2 = $var2;
         $this->var3 = $var3;
         $this->var4 = $var4;
         $this->var5 = $var5;
    }

    public function printTable(){
    echo '
        <tr class="d1 vevent">
          <td>
             <b><abbr class="dtstart" title="' . $this->var1 . '">' . $this->var2 . '</abbr></b> <br>' . $this->var3 . '</td>
          <td>
              <span class="summary">' . $this->var4 . ' - ' . $this->var5 . '</span>
              <span class="location">' . $this->loc . '</span>
          </td>
        </tr>';
    }
}
$longestArray = $array1;
if(count($array2)>count($longestArray)) $longestArray = $array2;
if(count($array3)>count($longestArray)) $longestArray = $array3;
if(count($array4)>count($longestArray)) $longestArray = $array4;
if(count($array5)>count($longestArray)) $longestArray = $array5;
if(count($loc)>count($longestArray)) $longestArray = $loc;

$objArray = Array();
for($i=0;$i<count($longestArray);$i++){
    $objArray[] = myClass($array1[$i],$array2[$i],$array3[$i], $array4[$i], $array5[$i], $loc[$i]);
}

echo "<table>";
for($objArray as $obj){
    $obj->printTable();
}
echo "</table>";
或者,如果您有一个对象数组:

echo "<table>";
for($objArray as $obj){
    $obj->printTable();
}
echo "</table>";
echo”“;
for($objArray作为$obj){
$obj->printTable();
}
回声“;
最后,如果要使用此类使用当前的阵列系统,可以执行以下操作:

class myClass(){
    public $title;
    public $var1;
    public $var2;
    public $var3;
    public $var4;
    public $var5;
    public $loc;

    public function __construct($title, $var1, $var2, $var3, $var4, $var5){
         $this->title = $title;
         $this->var1 = $var1;
         $this->var2 = $var2;
         $this->var3 = $var3;
         $this->var4 = $var4;
         $this->var5 = $var5;
    }

    public function printTable(){
    echo '
        <tr class="d1 vevent">
          <td>
             <b><abbr class="dtstart" title="' . $this->var1 . '">' . $this->var2 . '</abbr></b> <br>' . $this->var3 . '</td>
          <td>
              <span class="summary">' . $this->var4 . ' - ' . $this->var5 . '</span>
              <span class="location">' . $this->loc . '</span>
          </td>
        </tr>';
    }
}
$longestArray = $array1;
if(count($array2)>count($longestArray)) $longestArray = $array2;
if(count($array3)>count($longestArray)) $longestArray = $array3;
if(count($array4)>count($longestArray)) $longestArray = $array4;
if(count($array5)>count($longestArray)) $longestArray = $array5;
if(count($loc)>count($longestArray)) $longestArray = $loc;

$objArray = Array();
for($i=0;$i<count($longestArray);$i++){
    $objArray[] = myClass($array1[$i],$array2[$i],$array3[$i], $array4[$i], $array5[$i], $loc[$i]);
}

echo "<table>";
for($objArray as $obj){
    $obj->printTable();
}
echo "</table>";
$longestArray=$array1;
如果(count($array2)>count($longestArray))$longestArray=$array2;
如果(count($array3)>count($longestArray))$longestArray=$array3;
如果(count($array4)>count($longestArray))$longestArray=$array4;
如果(count($array5)>count($longestArray))$longestArray=$array5;
如果(计数($loc)>计数($longestArray))$longestArray=$loc;
$objArray=Array();
对于($i=0;$iprintTable();
}
回声“;

注意:每当数组长度短于索引时,您将收到许多关于数组不存在索引的警告,但这应该是有效的,并且执行得很好。此外,我没有测试它,因此它很容易出现键入错误。

您对表的外观的描述非常模糊。您的意思是什么?向我们显示一个循环y你试过了吗?/你是如何得到阵列的?静态还是静态database@unholyRanger代码添加了您试图做什么以及如何做还不清楚。我想通过循环迭代不同的数组,但是循环内循环多次迭代内循环,而我想正常运行每个数组可以更精细地执行它。实际上,我很穷ith阵列:(谢谢,我将尝试并更新结果。是的,我已经看到了。谢谢。我将尝试并更新u,因为我不想将所有数组合并为不同的数组显示在表上的不同位置,以及表拖将如何与每个最长的数组项迭代???我理解您的问题的方式是您想要fir每个数组的第一个元素是表中的一行。然后每个数组的第二个元素是表中的第二行。等等。我假设较短的数组意味着该行的指定值未定义。是否正确?