in_array如果$ massive = $ insteredname

时间:2010-09-29 10:06:30

标签: php html

<?
$nimi = $_POST['nimi'];
$nimed = $_POST['nimed'];
if ($nimi) {
    if ($nimed) {
        $nimed .= ', ' .$nimi;
    }
    else {
        $nimed = $nimi;
    }
}
?>
<html>
<form method="post">
Sisesta nimi:
<input type="text" name="nimi" size="9" />
<input type="hidden" name="nimed" value="<?= $nimed ?>" />
<input type="submit" value="Lisa" />
</form>
<?
$m = explode(', ',$nimed);
sort ($m);
if ($nimi) {
    echo '<ol>';
    foreach ($m as $nimi) {
        echo "<li>$nimi<br /></li>";
    }
}
echo '</ol>';
?>
</html>
E:我应该把它放在哪里,因为它应该说“这个名字已经在将其添加到列表中”

if (in_array($nimi,$m)) {}

2 个答案:

答案 0 :(得分:1)

我假设$ nimi是一个单一名称,$ nimed是提交的名字列表。

如果你想确保双重名称不在列表中且仍然输出,你可以在将名称连接到列表之前检查in_array,这是

的内容。
if($nimi) {
    if($nimed) {
        if(strpos($nimi,$nimed) === false) {
            echo("THIS NAME IS ALREADY THERE INSTEAD OF ADDING IT TO THE LIST");
        }
        else {
            $nimed .= $nimed . ', ' . $nimi;

... snip ...

编辑:答案的第一部分很糟糕。除去。

答案 1 :(得分:1)

$nimi = $_POST['nimi']; 
$nimed = $_POST['nimed']; 
$added = false;
if ($nimi) { 
    if ($nimed) { 
        $temp = explode(', ',$nimed); 
        if (!in_array($nimi,$temp)) {
           $nimed .= ', ' .$nimi; 
           $added = true;
        }
    } 
    else { 
        $nimed = $nimi; 
    } 
} 
...
if ($nimi && !$added) {
   echo 'Already in array';
}