【发布时间】:2018-07-17 17:20:47
【问题描述】:
所以我有这个数组列表(我出于隐私目的更改了值);
$datalist = array(
1 =>
array(
"12.2.2.2",
"Netherlands 1",
"Hub 1",
"Password",
"Mfalse"
) ,
array(
"12.2.2.2",
"Singapore 1",
"Hub 2",
"Password 2",
"Mfalse"
)
我想要 array2 的输出,即“集线器”和“集线器 2”。所以我做了这个 php 代码,因为我希望它在一个表中循环,这样所有的细节都将被列出和组织。但我现在唯一需要的是显示 HUB。
foreach ($response->monitors as $monitors) {
if(isset($monitors->id)){
echo
'<tr>
<td><i class="fas fa-globe"></i> '.$monitors->friendly_name.'</td>';
foreach ($datalist as $key => $value) {
# code...
if (isset($key)) {
echo '<td>'.$value[2].'</td>';
}
}
echo '<td>'.$monitors->url.'</td>
<td>'.$monitors->status.'</td>
</tr>';
}
}
由于我还使用其他值输出,并且我想要的数组也在表的另一个 foreach 循环中。
所以主要问题在于这部分,因为每当我使用它时,它在表格的每个循环上都会像这样输出
foreach ($datalist as $key => $value) {
# code...
if (isset($key)) {
echo '<td>'.$value[2].'</td>';
}
}
输出:
Netherlands 1 Hub 1 Hub 2 12.2.2.2
Singapore 1 Hub 1 Hub 2 12.2.2.2
但我正在寻找的期望输出是;
Netherlands 1 Hub 1 12.2.2.2
Singapore 1 Hub 2 12.2.2.2
我的 foreach 数组语句有什么问题?
$datalist 的 var_dump
array (
1 =>
array (
0 => 'x',
1 => 'Netherlands 1',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
2 =>
array (
0 => 'x',
1 => 'Singapore 1',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
3 =>
array (
0 => 'x',
1 => 'Singapore 2',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
4 =>
array (
0 => 'x',
1 => 'Singapore 3',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
5 =>
array (
0 => 'x',
1 => 'Singapore 4',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
6 =>
array (
0 => 'x',
1 => 'Singapore 5',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
7 =>
array (
0 => 'x',
1 => 'Singapore 6',
2 => 'PeenoiseSync',
3 => 'x',
4 => 'Mfalse',
),
8 =>
array (
0 => 'x',
1 => 'Singapore 7',
2 => 'YTAC',
3 => 'x',
4 => 'Mfalse',
),
)
【问题讨论】:
-
$monitors->friendly_name 这会输出什么?
-
@AlbertoVidales 我正在使用正常运行时间机器人 api,它输出一些名称,如 SG-1 等。
-
我的问题是,该变量是否与数组中的位置 1 值相同?
-
请
var_dump($datalist);发布结果,以便我们了解它是如何实际构建的。如果需要,您可以删除某些值,但不要尝试手写整个内容。这总是很糟糕,并导致提供的信息很差。 -
@PatrickQ 添加了 $datalist 的 var 转储;
标签: php arrays if-statement foreach