我在从foreach循环的结果中删除重复项时遇到问题。
问题更多的是我如何获得数据的过程。
这是抓取我需要的数据。
$results = mysql_query($query);
while($rows = mysql_fetch_assoc($results)){
extract($rows);
我想抓一列item_specifiations
。在此列中有多个数据,以逗号分隔。有些项目有更多数据,其他项目缺少某些数据。
$specs = explode("," , $item_specification);
我使用上面的方法分离数据。然后我运行循环以显示数据库中每个项目的数据。
foreach($specs as $spec => $key ){
现在返回每个项目(UPC,PRODUCT_NAME,ETC)分隔的每个数据,这正是我需要的。但我只需要该品牌的“品牌”。所以我做了以下几点。
if (strpos($key, 'Brand') === 0) {
$brand = explode(':', $key);
}
现在我遇到的问题是某些商品的品牌名称重复。
所以我想删除任何返回的字符串。问题是,由于这是一个循环,因此无法将字符串相互比较。每个都是它自己的数组,所以我正在处理多个多维数组。我无法找到一种方法将它们推入1个数组然后进行比较,或者使用像unique_array这样的东西。
任何建议或帮助将不胜感激。我被困了一段时间。
答案 0 :(得分:0)
使用array_unique
:
$var = [];
foreach($specs as $spec => $key) {
if(strpos($key,'Brand') === true ) {
$brand[]= implode(',', array_unique(explode(', ',$key)));
}
}
print_r($brand);