[英]notice: array to string conversion in php
<?php
$player[] = array();
$team_id = $_SESSION['tid'];
$team_pids = $con->prepare("SELECT p_id FROM players_to_team WHERE t_id = ?");
$team_pids->bindParam(1,$team_id);
$team_pids->execute();
while($info = $team_pids->fetch(PDO::FETCH_ASSOC))
{
$player[] = $info['p_id'];
echo $info['p_id'];
}
$pl_1 = $player[0];
.
.
.
$pl_10 = $player[9];
echo $player[0]; //notice here
echo $pl_1; //notice here
?>
<table>
$query = $con->prepare("SELECT role,name,value FROM players WHERE p_id = '".$pl_1."'");
// notice here
$query->execute();
while($result = $query->fetch(PDO::FETCH_ASSOC))
{
echo "<tr>";
echo "<td>".$result['role']."</td>";
echo "<td>".$result['name']."</td>";
echo "<td>".$result['value']."</td>";
}
?>
</tr>
</table>
当我回显$ info数组它工作正常,但当我回显$ player数组或$ pl_1变量或$结果数组值注意出现...数组到字符串转换和o / p不显示。 为什么?
尝试替换$player[] = array();
by $player = array();
在开头(第2行)。
这是因为你在这个变量的索引0处声明了一个数组,由于[]
,它被告知是一个数组。 因此,您尝试在数组中放置一个数组,使其成为多维数组。
你不能简单地echo
一个数组。 echo
只能输出字符串 。 echo 'foo'
很简单,它输出一个字符串。 什么是echo
应该在的情况下,做的正是echo array('foo' => 'bar')
为了让echo
在这里输出任何东西,PHP会将array('foo' => 'bar')
转换为字符串,该字符串始终是字符串"Array"
。 而且因为PHP知道这可能不是你想要的,它会通知你。
问题是你正在尝试将数组视为字符串。 修复它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.