数组内部未知的变量

时间:2012-04-18 22:58:43

标签: php

有没有办法为数组添加某种参数(还有未知变量)?正如你在这里看到的,我不提前知道userID(在获取mysql之前),所以我无法正确地形成一个导致编辑页面的链接。

<?php

$box = array ('1'=>"<a href='edit.php?id=/PROBLEM??/'>edit</a>",'2'=>'Cannot edit');


while ($row = mysql_fetch_array($something)) {

?>

<tr>
<td><?php echo $row["Name"]; ?></td>
<td><?php echo $box[$row["editable"]]; ?></td>
</tr>


<?php

}

?>
  

$ row [“editable”]返回1或2,取决于数据库记录   如果用户可编辑,则返回。

3 个答案:

答案 0 :(得分:4)

您可以使用sprintf()

$box = array ('1'=>"<a href='edit.php?id=%d'>edit</a>",'2'=>'Cannot edit');

echo sprintf($box[$row["editable"]], ID_HERE)

答案 1 :(得分:1)

这样做......

<?php while ($row = mysql_fetch_array($something)) : ?>

<tr>

<td><?php echo $row["Name"]; ?></td>

<?php if( $row["editable"] === 1 ) : ?>
   <td><a href='edit.php?id=<?php echo $row["Id"]; ?>'>edit</a></td>
<?php else : ?>
    <td>Cannot edit</td>
<?php endif; ?>

</tr>

<?php endif; ?>

答案 2 :(得分:1)

尝试str_replace()

$box = array ('1'=>"<a href='edit.php?id=%ID%'>edit</a>",'2'=>'Cannot edit');
$link = str_replace('%ID%', $row["id"], $box[$row["editable"]]);