我已经创建了一个聊天功能。我想从一组值中只获取一个值。我在其中使用了array_unique函数。
错误:
{
"libs": [],
"items": [
{
"id": "001",
"cars": [
"cd1042af-856d-4649-a170-032d15a4119b",
"00ed61a4-3aab-4722-90c2-7f4cca4cbded",
"8fa3aa8b-3f22-4413-a41d-e78de9051de2"
],
"name": "James"
},
{
"id": "002",
"cars": [
"cd1043af-856d-4649-a170-032d15a4119b",
"00ed61a4-3aab-4722-90c2-7f4cca4cbded",
"8fa3aa8b-3f22-4413-a41d-e78de9051de2"
],
"name": "James"
}
]
}
答案 0 :(得分:0)
您正在尝试对数组进行字符串比较(非标量)。我不认为array_unique适用于数组数组,它必须是字符串数组。如果您需要唯一的接收器,则需要将该值转换为字符串。
我不知道您可能正在使用该数组,但一种解决方案是序列化/字符串化数组,然后您可以运行您的唯一,然后解包/淡化字符串。我不确定为什么如果该数组中只有一个值,那么你使用的是一个键。如何存储字符串,它应该适合你
EX:
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);
}