Php 将数组唯一性与数组一起使用

Php 将数组唯一性与数组一起使用,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我的php代码如下所示: <?php $conn = mysql_connect("localhost","root","") or die(mysql_error()); mysql_select_db("dbcsv",$conn); $data = array(); $sql = "select orig,dlvSourceIp from tblcsv group by dlvSourceIp"; $res = mysql_query($sql)

我的php代码如下所示:

<?php
    $conn = mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("dbcsv",$conn);
    $data = array();
    $sql = "select orig,dlvSourceIp from tblcsv group by dlvSourceIp";
    $res = mysql_query($sql) or die(mysql_error());
     echo '<table border="1px">';
     echo "<tr><td>Dormain</td><td>ip of the domain</td><td>Total Mail</td><td>Mail Fail</td><td>Percentage</td></tr>";
        while($data = mysql_fetch_array($res)){
             //echo "<tr><td>".$data['orig']."</td><td>".$data['dlvSourceIp']."</td><td></td><td></td></tr>";
            $t = $data['orig'];
             $getData = array_unique($t);
             var_dump($getData);
}
?>

对于$data['orig'],是我从数据库中选择的数据数组,它将显示:cat dog cat dog。我想要这样的输出:猫狗,这就是为什么我使用数组唯一

问题是:


我在第21行的C:\wamp\www\CountLine\u CSV\csv2mysql.php中得到了错误消息array\u unique预期参数1为array,空值?任何人都可以帮助我,谢谢。

我想你的数组是作为字符串值存储在表中的。你需要抓取条目,分解它并创建一个数组,然后使用array_unique来获得你想要的效果。尝试以下操作,看看是否有效:

$t = $data['orig']
$array = explode(" ", $t);
$array = array_unique($array);
print_r($array);
此外,还可以考虑在查询中使用MySQLi或PDO

因此,总的来说,下面的内容就足够了:

<?php   
    $mysqli_connection = new mysqli("hostname", "username", "password", "database");
    if ($mysqli_connection->connect_errno) {
        echo ("Connection Failure");
        exit();
    }

    $sql = "SELECT orig, dlvSourceIp FROM tblcsv GROUP BY dlvSourceIp";
    echo '<table border="1px">';
    echo "<tr><td>Dormain</td><td>ip of the domain</td><td>Total Mail</td><td>Mail Fail</td><td>Percentage</td></tr>";
    while($data = $sql->fetch_array(MYSQLI_ASSOC)) {
        $t = $mysqli_connection->real_escape_string($data['orig']);
        $array = explode(" ", $t);
        $array = array_unique($array);
        // Do something with the array, or:
        print_r($array);
    }
    $sql->free();
    $mysqli_connection->close();
?>

当调用数组_unique而不是空值时,通过在参数1中传递一个数组来修复它。。。错误信息非常清楚。代码中$t的值显然为空。请尝试执行print\r$data['orig']。似乎变量$data['orig']不是数组。它必须是一个数组才能使用该函数。你能添加一点上下文来说明你正在尝试做什么,以及orig的内容是什么吗?@rdlowrey duh,删除3,2,1中的愚蠢评论…@bfavaretto没问题-我不时做一些愚蠢的事情,当我做的时候,我真的很努力地承认:你是对的,除了第一句话。MySQL没有数组数据类型,因此数据存储为字符串。可能是一个PHP数组在插入之前内爆了。是的,你是对的。我的意思是,数据作为字符串插入到表中,而不管用户是否希望将其保留为数组。查询没有返回任何行。看起来你为OP解决了下一个问题后将面临的问题写了一个解决方案!:@啊,你似乎更正确了。可能应该在发布之前刷新并重新阅读。不管怎样,希望OG能在时机成熟时发现这一点。非常感谢,但我在第51行的C:\wamp\www\CountLine\u CSV\csv2mysql.php中收到了错误消息Parse error:syntax error,意外的T\u双箭头。如何修复它?