我有一个奇怪的问题,我似乎一辈子都无法解决。
我正在从 mysql 查询生成一个数组 ($tags),它看起来像这样:
Array(
[1] => Safety Toe
[2] => Waterproof
)
然后我有另一个在循环中生成的数组($link):
Array(
[1] => Array(
[0] => 1
[1] => 2
)
[2] => Array(
[0] => 1
[1] => 2
)
)
另外,我有 2 个预定义变量,在这种情况下如下:
$max == 2;
$title_count == 3;
后来我有2个for循环,1个是嵌套的:
for($y=0;$y<$max;$y++){
for($x=1;$x<=$title_count;$x++){
if($x==1){
echo "<tr><td>".$tags[$link[$x][$y]]."</td>";
}elseif($x<$title_count){
echo "<td>".$tags[$link[$x][$y]]."</td>";
}else{
echo "<td>".$tags[$link[$x][$y]]."</td></tr>";
}
}
}
这应该会产生以下内容:
Safety Toe Safety Toe Safety Toe
Waterproof Waterproof Waterproof
问题是这就是我得到的:
Safety Toe Safety Toe Safety Toe
这让我很好奇,所以我尝试手动输入 $tags[2]。这有效并产生了:
Waterproof Waterproof Waterproof
Waterproof Waterproof Waterproof
但是,如果我手动将它们全部设置为 $tags[$link[1][1]] ($link[1][1] == 2) 我得到一个空结果。如果我设置一个变量,比如 $test = $link[1][1]; (回显为 2),然后尝试 $tags[$test],我什么也没得到。但是,如果我设置 $test = 2; 并做 $tags[$test] 我得到防水。
我在这里感到困惑,如果有什么我遗漏的东西,或者关于为什么会这样的任何想法,请告诉我。
谢谢!