【问题标题】:How to present subarray values into cells of a table using PHP?如何使用 PHP 将子数组值呈现到表格的单元格中?
【发布时间】:2016-10-16 22:13:26
【问题描述】:

我已经搜索过了,但遗憾的是没有找到任何令人满意的解决我的问题的方法。

我有以下数组和一些子数组:

Array (
    [0] => Array
        ([0] => AAAA
         [1] => BBBB
         [2] => CCCC
         [3] => DDDD
         [4] => EEEE
         [5] => FFFF
         [6] => GGGG)
    [1] => Array
        ([0] => hhhh
         [1] => iiii
         [2] => jjjj
         [3] => kkkk
         [4] => llll
         [5] => mmmm
         [6] => nnnn)

    ...

    [999] => Array
        ([0] => OOOO
         [1] => PPPP
         [2] => QQQQ
         [3] => RRRR
         [4] => SSSS
         [5] => TTTT
         [6] => UUUU)
)

然后我可以使用以下代码将其呈现到表格中:

$table = '<table border=1>';
    // Select values of the array to create table.
    foreach($array as $key => $row){
        $table .= '<tr>';

        foreach($row as $value){
            $table .= '
                <td>'.$value.'</td>
            ';
        }
        $table .= '</tr>';
    }
$table .= '</table>';

echo $table;

图形结果是这样的:

AAAA | BBBB | CCCC | DDDD | EEEE | FFFF | GGGG
hhhh | iiii | jjjj | kkkk | llll | mmmm | nnnn
...
OOOO | PPPP | QQQQ | RRRR | SSSS | TTTT | UUUU

但由于我想操作表格的某些单元格,例如在其中一些单元格中插入链接,因此我正在寻找一种允许我这样做的方法:

        foreach($??? ??? $???){
            $table .= '
                <td>'.$value[0].'</td>
                <td>'.$value[1].'</td>
                <td>'.$value[2].'</td>
                <td>'.$value[3].'</td>
                <td>'.$value[4].'</td>
                <td><a href="#">'.$value[5].'</a></td>
            ';
        }

有人知道我怎么能做到这一点吗?

【问题讨论】:

    标签: php arrays html-table


    【解决方案1】:

    你可以这样做

    //...
    foreach($row as $key => $value) {
        if ($key === 5) {
            $value = '<a href="#">'.$value.'</a>';
        }
    
        $table .= '
            <td>'.$value.'</td>
        ';
    }
    //...
    

    foreach 构造可以将当前元素的键分配给一个变量。

    【讨论】:

    • 又好又简单!虽然我们应该避免这样的 cmets,但我必须说谢谢! :-)
    【解决方案2】:

    这实际上取决于导致您生成链接的因素。如果它只是每个数组中的第 6 个值,那么 @undefined 的解决方案将起作用。如果它是您手动控制的,也许这样的方法会为您解决问题:

    首先,将要链接的元素本身定义为键控数组:

    $array = array(
        array('AAAA', array('text' => 'BBBB', 'href' => 'http://stackoverflow.com'), 'CCCC', 'DDDD', 'EEEE', 'FFFF', 'GGGG'),
        array('hhhh', 'iiii', 'jjjj', array('text' => 'kkkk', 'href' => 'http://stackoverflow.com'), 'llll', 'mmmm', 'nnnn')
    );
    

    然后,当你处理数组中的每个元素时,使用is_array 来检查它是否是一个数组本身,并进行不同的处理:

    $table = '<table border=1>';
    // Select values of the array to create table.
    foreach($array as $key => $row){
        $table .= '<tr>';
    
        foreach($row as $value){
            // PROCESS ARRAY AS A LINK
            if(is_array($value)) {
                $value = '<a href="' . $value['href'] . '">' . $value['text'] . '</a>';
            }
    
            $table .= '
                <td>'.$value.'</td>
            ';
        }
        $table .= '</tr>';
    }
    $table .= '</table>';
    
    echo $table;
    

    【讨论】:

      猜你喜欢
      • 2015-04-22
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多