PHP array_unique()函数

时间:2017-10-10 06:29:43

标签: php

<?php
    $MCA2DIVA=array('Sourabh','Akash','Anand','Karan','Amit');
    $MCA2DIVB=array('Komal','Ruchita','Akash','Amit','Pratik');
?>
<html>
    <head>
        <style>
            table
            {
                border:2px solid;
                background-color:#acbe4a;
                position:absolute;
                top:25%;
                left:30%;
                height:40%;
                width:10%;
                border-radius:10px;
                font-weight:bold;
                font-size:17px;
            }
            td
            {
                border:2px solid;
                text-align:center;
                border-radius:8px;
            }
            p
            {
                position:absolute;
                font-weight:bold;
                font-size:25px;
                left:10%;
            }
            p#p1
            {
                top:5%;
            }
            p#p2
            {
                top:8%;
            }
        </style>
    </head>
    <body bgcolor='#daf05e'>
        <p id=p1>
            <?php
                echo "Array 1 : ";
                print_r($MCA2DIVA);
            ?>
        </p>
        <p id=p2>
            <?php
                echo "Array 2 : ";
                print_r($MCA2DIVB);
            ?>
        </p>
        <?php
            $final=array_unique(array_merge($MCA2DIVA,$MCA2DIVB));
        ?>
        <br>
        <table>
            <?php
                for($i=0;$i<sizeof($final);$i++)
                {
            ?>
        <tr><td>
            <?php
                print_r($final[6]);
            ?>
        </tr></td>
            <?php
                }
            ?>
        </table>
    </body>
</html>

这是我的PHP代码。我想合并两个数组删除重复项并以表格格式显示它。但是array_unique函数显示除了数组中最后一个元素之外的必要输出。当我尝试打印单个数组值时,它会显示所需的值。请帮我找到问题。

2 个答案:

答案 0 :(得分:2)

使用array_unique()输出array_merge(): - https://eval.in/876892

所以你会看到最后一个值的索引9不是6。

所以不要使用for循环使用foreach(),因为它会处理索引本身。

逐个打印所有值: -

 <table>
    <?php
        foreach($final as $value)
        {
    ?>
    <tr><td>
        <?php
            echo $value;
        ?>
    </tr></td>
    <?php
        }
    ?>
</table>

如果您只想显示最后一个值( 不需要循环 ): -

 <table>

    <tr><td>
        <?php
            echo $final[count($final)-1];
        ?>
    </tr></td>

</table>

注意: -

如果您想使用for循环,则必须使用array_values()重新索引数组,如下所示: - https://eval.in/876905

答案 1 :(得分:0)

<?php

$foo = array('Sourabh','Akash','Anand','Karan','Amit');
$bar = array('Komal','Ruchita','Akash','Amit','Pratik');

$names = array_unique(array_merge($foo, $bar));
sort($names);

?>   
<table>
    <thead>
        <tr>
            <th>Names</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach($names as $name) { ?>
            <tr>
                <td><?= $name ?></td>
            </tr>
        <?php } ?>
    </tbody>
</table>