防止数组中的多个条目

时间:2014-10-18 20:57:40

标签: php arrays

所以我有这个简单的代码来获取每个产品,找到类型,并将其作为一个类别显示在我的网站中。

public function get_categories()
{
    $products = $this->get_products();

    $categories = array();

    $i = '-1';

    foreach($products as $product)
    {
        $name = ucfirst(strtolower($this->ci->inflect->pluralize($product['type']))); 

        if(!in_array($name, $categories))
        {
            $i++;

            $categories[$i] = array(
                'name' => $name,
                'type' => strtolower($product['type']),
            );
        }
    }

    return $categories;
}

现在,它工作得很好,直到我需要将typename一起传递,所以现在我正在制作一个多维数组。

现在显然name永远不会在数组categories中,因为它位于该数组中的另一个数组中。

如何检测数组name内的数组中是否已存在categories

2 个答案:

答案 0 :(得分:0)

$categories[$i] = array(
                'name' => $name,
                'type' => strtolower($product['type']),
            );

更改为

$categories[$name] = array(
                'name' => $name,
                'type' => strtolower($product['type']),
            );

并添加

foreach($categories as $key=>$val){
 $out[$i] = $categories[$key];
}

或array_unique 或类似的(如下所述)

http://php.net/manual/en/ref.array.php

但我不确定我是否理解正确的道路

答案 1 :(得分:0)

你可以试试这个 将[$i]更改为

$category[$name]

   $i++;

if(!in_array($name, $categories[$i]))
        {


            $categories[$i] = array(
                'name' => $name,
                'type' => strtolower($product['type']),
            );
        }