从数据库列中获取唯一值(每个单元格都有逗号分隔值)

时间:2017-08-25 19:13:50

标签: php laravel

我试图通过foreach从数据库列中获取唯一值作为列表选项,其中每个单元格都有多个以逗号分隔的值。

数据库单元格:

  1. 门,窗
  2. 窗口,工作表
  3. Sheet,Door
  4. 我试图将以下内容作为选择选项:

    1. 窗口
    2. 我正在使用laravel并尝试了以下内容:

      我的控制器如下:

      $products = DB::table('dealers')->select('products')->distinct()->get();
      

      我的刀片视图如下:

      <select>
      <option value="">All</option>
      @foreach( $products as $product)
          <?php
          foreach(explode(", ", $product->products) as $value)
      
              printf(
                  '<option value="%1$s">
                                          %1$s
                                      </option>',
                  $value
              );
          ?>
      @endforeach
      

      我得到以下输出: [1]门[2]窗口[3]窗口[4]页[5]页[6]门

      任何人都可以帮忙!我需要做到:[1]门[2]窗口[3]表

3 个答案:

答案 0 :(得分:0)

PHP有一个大型的数组函数标准库,包括array_unique

修改

我错过了外圈。你必须得到整个数据集的独特性,而不仅仅是每行

public time: number;
public countDown:Observable<any>;
public currentUnix;

constructor() {
    this.currentUnix = moment().unix();
    this.time = moment(1503773977000).unix() - this.currentUnix;
}


ngOnInit() {
    this.countDown = Observable.interval(1000)
      .map(res => {
        return this.time = this.time - 1
      })
      .map(res => {

        let timeLeft = moment.duration(res, 'seconds');
        let string: string = '';

        // Days.
        if (timeLeft.days() > 0)
          string += timeLeft.days() + ' Days';

        // Hours.
        if (timeLeft.hours() > 0)
          string += ' ' + timeLeft.hours() + ' Hours';

        // Minutes.
        if (timeLeft.minutes() > 0)
          string += ' ' + timeLeft.minutes() + ' Mins';

        // Seconds.
        string += ' ' + timeLeft.seconds();
        console.log("string", string);
        return string;
      })
}

答案 1 :(得分:0)

很简单,您可以将每个术语保存在数组中。然后检查数组中是否存在值。 请尝试以下laravel blade视图代码:

<select>
    <option value="">All</option>
    <?php $array = []; ?>
    @foreach( $products as $product)
        @foreach(explode(", ", $product->products) as $value)
            @if(!in_array($value, $array))
            <option value="{{ $value }}">{{ $value }}</option>
            @endif
        @endforeach
    @endforeach
</select>

答案 2 :(得分:0)

Here对我有用!!!!!