php foreach.从数组中选择特定的值,并将其用作显示循环的参数


php foreach. select specific value from array and use it as parameter for display loop

我希望能够显示当前登录的作者的图书标题。我使用PHP session

<? foreach ($books as $book ): ?>
<? foreach ($book as $selbook => $author): ?>
    <option value="$selbook>"$author['author'] == $_SESSION["sess_username"] ? ' selected="selected"' : ''?>> $author?></option>
<li class="active"><a href=""><span class="pull-right"><input id="button" type="submit" name="submitr" value="Edit"></span><i class="icon-fire$
<? echo htmlspecialchars($book['Title'], ENT_QUOTES, 'UTF-8'); ?> <strong> - </strong><em>
<? echo htmlspecialchars($book['author'], ENT_QUOTES, 'UTF-8');?></em></a></li>
<? endforeach; ?>
<? endforeach; ?>

你开始的第二个foreach:

<?php foreach ($book as $selbook => $author) { ?>

并以此结尾:

<?php endforeach; ?>

是不正确的。使用:

<?php foreach ($book as $selbook => $author): ?>
    // some code
<?php endforeach; ?>

还有,为什么要用<?php ?短标记未启用?使用<?,编写速度更快,代码可读性更强。另外,当你想要回显一些变量时,使用php标签使用这个:

<?=$variable;?>

速度更快,可读性更强。

更新

试试这个:

<? foreach ($books as $book ): ?>
 <? foreach ($book as $selbook => $author): ?>
  <option value="<?=$selbook;?>" <? if($author['author'] == $_SESSION["sess_username"]): ?>selected="selected"<? endif; ?> ><?=$author;?></option>
  <li class="active"><a href=""><span class="pull-right"><input id="button" type="submit"  name="submitr" value="Edit"></span><i class="icon-fire$
  <? echo htmlspecialchars($book['Title'], ENT_QUOTES, 'UTF-8'); ?> <strong> - </strong><em>
  <? echo htmlspecialchars($book['author'], ENT_QUOTES, 'UTF-8');?></em></a></li>
 <? endforeach; ?>
<? endforeach; ?>