如何在循环中重复显示数据

时间:2018-09-10 18:20:36

标签: php arrays loops for-loop

我想显示数组中的数据。我有一个像这样的数组:

   Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

我尝试使用此脚本:

$product = array('a','b','c','d');
echo '<table border="1">';
    echo '<tr><th>Product 1</th><th>Product 2</th><th>Similarity</th></tr>';
    for($i=0; $i<count($product); $i++){
        echo '<tr><td>'.$product[$i].'</td><td>'.$product[$i+1].'</td></tr>';
    }
    echo '</table>';

但是我很困惑并且尝试过,但是总是无法获得表中的输出,如下所示:

| Data 1 | Data 2 |
| a      | b      |
| a      | c      | 
| a      | d      |
| b      | c      |
| b      | d      |
| c      | d      |

依阵列的长度依此类推

2 个答案:

答案 0 :(得分:1)

您可能需要使用多个循环来获取所需的输出:

<?php

$a = [
    0 => "a",
    1 => "b",
    2 => "c",
    3 => "d"
];

echo '<table border="1">';
echo '<tr><th>Product 1</th><th>Product 2</th><th>Similarity</th></tr>';

foreach($a as $key => $value)
{
    for($i = $key + 1; $i < count($a); $i++)
    {
        echo "<tr><td>$value</td><td>{$a[$i]}</td></tr>";
    }
}

echo '</table>';

结果将是:

enter image description here

答案 1 :(得分:1)

您需要将数组循环嵌套两次。
第一个循环运行完整的数组,另一个循环使用array_slice仅获取“ +1”和值。

$product = array('a','b','c','d');
echo '<table border="1">';
echo "<tr><th>Product 1</th><th>Product 2</th><th>Similarity</th></tr>\n";

foreach($product as $key => $a){
    foreach(array_slice($product, $key+1) as $b){
        echo '<tr><td>'.$a.'</td><td>'.$b."</td></tr>\n";
    }
}
echo '</table>';

输出:

<table border="1">
<tr><th>Product 1</th><th>Product 2</th><th>Similarity</th></tr>
<tr><td>a</td><td>b</td></tr>
<tr><td>a</td><td>c</td></tr>
<tr><td>a</td><td>d</td></tr>
<tr><td>b</td><td>c</td></tr>
<tr><td>b</td><td>d</td></tr>
<tr><td>c</td><td>d</td></tr>
</table>

https://3v4l.org/fdp2e