gpt4 book ai didi

php - array_unique 仅在一个字段上?

转载 作者:行者123 更新时间:2023-11-29 14:37:13 24 4
gpt4 key购买 nike

我有以下自动完成框的代码,我添加了一个图像以澄清选择,但想确保返回的 title 是唯一的,但是,当我到达使数组唯一,我添加了其他代码,使其在其他区域不唯一。有办法解决这个问题吗?

$query = "SELECT $title, imageURL FROM PRprodINFO2 WHERE ((prodcatID = '$cat_id')
AND ($title LIKE \"%" . $_GET["q"] . "%\")) group by $title LIMIT 8";
}

$result = mysql_query($query);

// set the array
$output_items = array();

while($row = mysql_fetch_array($result)) {

// clean after first non letter/number
$row[$title] = preg_replace('/[^\w\s].*$/', "", $row[$title]);

//trim spaces
$row[$title] = trim($row[$title]);

// add image src
$output_items[] = '<img src='.$row[imageURL].' style=max-width:50px;>'
.$row[$title];

} // while

// here i need just $row[title] to be unique,
// it is made non unique after regex strips off some characters
$output = array_unique($output_items);

print(implode("\n", $output));

mysql_close();

最佳答案

我可能对你的问题感到困惑。看起来您已经有了唯一的标题,因为您在 sql 中按标题进行分组。但是,也许您有额外的非字母数字字符,您正在使用正则表达式删除这些字符,从而使一些独特的标题相同。

在这种情况下,不要像现在这样构建 $output_items,而是尝试:

$output_items[$row['title']] = $row['imageURL'];

这将确保每个标题都是唯一的。您将获得与该标题匹配的最后一行的 imageURL。如果您想要第一个匹配的标题,则只需在覆盖它之前检查 isset 即可,如下所示:

if (!isset($output_items[$row['title']])) $output_items[$row['title']] = $row['imageURL'];

然后,在循环之外构建输出字符串。

$output = '';
foreach ($output_items as $title => $image) {
$output .= '<img src='.$image.' ...>'.$title."\n";
}
echo $output;

关于php - array_unique 仅在一个字段上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784861/

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