我遇到了关联数组的问题。当我检查数组$keywordstoupdate
确实返回一个值但是当它到达echo
时它表示Keyword
未定义。但是,print_r()
打印它,从这个角度来看一切都很好。但是当我试图回声时,Keyword
就丢失了。
function getkeywords($mysqli, $someid)
{
$keywords=array();
$query='select Keyword from keywords where someId=?';
$stmt= $mysqli->stmt_init();
$stmt->prepare($query);
$stmt->bind_param('i', $someid);
$stmt->execute();
$stmt->bind_result($Keyword);
while($stmt->fetch())
{
$keywords[]= array("Keyword" => $Keyword);
}
return $keywords;
}
$keywordstoupdate[]=getkeywords($mysqli, $someid);
<textarea id='textarea_keywords' name='keywords'>
<?php
if(count($keywordstoupdate)>0){
for($i=0; count($keywordstoupdate)>$i; $i++){
echo ( $keywordstoupdate[$i]['Keyword']." ");
}
} ?></textarea>
print_r()
Array
(
[0] => Array
(
[Keyword] => asdf
)
)
答案 0 :(得分:3)
看起来你正在意外地创建一个三维数组,而你的循环期待一个二维数组。
尝试更改:
$keywordstoupdate[]=getkeywords($mysqli, $someid);
要:
$keywordstoupdate=getkeywords($mysqli, $someid);