gpt4 book ai didi

php - PHP 中的 array_unique() 函数不适用于我的数组

转载 作者:行者123 更新时间:2023-11-29 18:07:22 25 4
gpt4 key购买 nike

我创建了一个聊天功能。我只想从一组值中获取一个值。我在其中使用了 array_unique 函数。

错误:

function get_chat_list($sender){
global $conn;
$sqlCode = "SELECT DISTINCT sender FROM chat WHERE connector LIKE '%$sender%' ";
$sqlCode1 = "SELECT DISTINCT reciever FROM chat WHERE connector LIKE '$sender%'";
var_dump($sqlCode1);
$run = mysqli_query($conn,$sqlCode);
$run1 = mysqli_query($conn,$sqlCode1);
var_dump($run1);
$recievers = array();
while($reciever = mysqli_fetch_assoc($run)){
if($reciever['sender'] == $sender){

}else{
$recievers[] = array('reciever'=>$reciever['sender']);
}

}

while($reciever = mysqli_fetch_assoc($run1)){
if($reciever['reciever'] == $sender){

}else{
$recievers[] = array('reciever'=>$reciever['reciever']);
}

}

return array_unique($recievers);
}

Error image

最佳答案

您正在尝试对数组(非标量)进行字符串比较。我不认为 array_unique 适用于数组数组,它​​必须是字符串数组。如果您想要唯一的接收器,则需要将该值转换为字符串。

我不知道您可能会使用该数组做什么,但一种解决方案是序列化/字符串化该数组,然后您可以运行您的唯一数组,然后稍后解开/淡化该字符串。我不确定为什么如果该数组中只有一个值,那么您要为其使用一个键。只存储字符串怎么样,它应该适合你

例如:

function get_chat_list($sender){
global $conn;
$sqlCode = "SELECT DISTINCT sender FROM chat WHERE connector LIKE '%$sender%' ";
$sqlCode1 = "SELECT DISTINCT reciever FROM chat WHERE connector LIKE '$sender%'";
var_dump($sqlCode1);
$run = mysqli_query($conn,$sqlCode);
$run1 = mysqli_query($conn,$sqlCode1);
var_dump($run1);
$recievers = array();
while($reciever = mysqli_fetch_assoc($run)){
if($reciever['sender'] != $sender){
$recievers[] = $reciever['sender'];
}

}

while($reciever = mysqli_fetch_assoc($run1)){
if($reciever['reciever'] != $sender){
$recievers[] = $reciever['reciever'];
}

}

return array_unique($recievers);
}

关于php - PHP 中的 array_unique() 函数不适用于我的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47718396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com