我已经搜索过了,但遗憾的是我找不到任何令人满意的解决方案。
我有一些包含一些子数组的数组:
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>
';
}
任何人都知道如何才能做到这一点?
答案 0 :(得分:1)
你可以这样做
//...
foreach($row as $key => $value) {
if ($key === 5) {
$value = '<a href="#">'.$value.'</a>';
}
$table .= '
<td>'.$value.'</td>
';
}
//...
foreach
构造可以将当前元素的键分配给变量。
答案 1 :(得分:0)
这实际上取决于您生成链接的因素。如果它只是每个数组中的第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;