Php 将数组唯一性与数组一起使用
我的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
$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双箭头。如何修复它?