如何在foreach循环中区分值

时间:2018-07-03 10:10:24

标签: php arrays

在我的收藏夹中,我有一些foreach会返回某些id的 BUT 而不是 array ,因此array_unique()在我的情况下不起作用。我想区分返回的值。

foreach ($prodCollection as $prod) {
    $catCollection = getModel()...; //$prod i need it in my collection
    foreach ($catCollection as $col) {
        var_dump($col->getId());
    }
} 

结果:

string(4) "5510"

string(4) "5510"

我需要的只是string(4) "5510"一次。

3 个答案:

答案 0 :(得分:1)

您可以这样操作。

检查value是否在数组中,如果不是,则将其添加到数组中。 这可能会有帮助。

$result = array();
foreach ($prodCollection as $prod) {
    $catCollection = getModel()...; //$prod i need it in my collection
    foreach ($catCollection as $col) {
        if(!in_array($col->getId(), $result)){  // Check if value is in array or not, if not then add it in array.
            $result[]=$col->getId();
        }
        //var_dump($col->getId());
    }
} 

答案 1 :(得分:0)

使用带有键的数组。将您的值作为键放入数组中。与Set具有相同的效果

$set1 = array ('a' => 1, 'b' => 1, );

  

将项目添加到数组中,然后调用array_unique删除重复项

答案 2 :(得分:0)

我只是将此解决方案作为一种解决方法,它可以解决我不知道它是否更好的方法!

View