如何遍历2个数组,如果匹配,则不要打印它

时间:2017-05-18 19:22:33

标签: php arrays foreach

我正在尝试不显示当前在数据库中的数字,因此无法再添加两次。

我的问题是,在foreach期间,它仍会显示我不想显示的数字。

示例:

在数据库中:foreach ($results as $item) {

800-333-3333
800-222-2222

我的列表:foreach ($obj as $file) {

800-333-3333
800-222-2222
800-111-1111

我遇到的问题是,当它循环时会显示如下内容:

<option value="800-222-2222">" . 800-222-2222 . " - " 800-111-1111 "</option>

如何确保数据库中的值不会显示或使用?

结果结果: 我想要一个不在数据库中的数字列表框(2 foreach)

CODE:

foreach ($obj as $file) {
    $c_number = preg_replace('/[^0-9]/', '', $file['matchrule']);
    $clean_number = substr($c_number, 1);
    if(!empty($results)) {
        foreach ($results as $item) {
            if ($item['NUMBER'] != $clean_number) {
                echo "<option value=" . $clean_number . "|" . $_domain . ">" . $clean_number . " - " .$item['NUMBER']. "</option>";
            }
        }
    }
    else {
        echo "<option value=" . $clean_number . "|" . $_domain . ">" . $clean_number . "</option>";
    }
}

2 个答案:

答案 0 :(得分:0)

这是我对你的理解:
您正在从数据库中检索数据,并且您不希望显示已插入数据库的数据。如果是这样,以下是答案:
以数组(fetch_array)的形式从数据库中检索数据,然后使用 in_array()函数检查该数组中的值是否可用,如下所示: -

private async createFactory(opts: CompileOptions) {
  const cacheKey = opts.template;

   if (Object.keys(cache).indexOf(cacheKey) > -1) {
     return cache[cacheKey];
   }
   cache[cacheKey] = new Promise(async(resolve) => {
     @Component({
        template: opts.template
     })
     class TemplateComponent {
        context: any
     }
     @NgModule({
        imports: opts.imports,
        declarations: [
          TemplateComponent
          // <== Insert your directives and components here
        ]
     })
     class TemplateModule {
     }
     const component = await this.compiler.compileModuleAndAllComponentsAsync(TemplateModule);
     const factory = component.componentFactories.find((comp) =>
       comp.componentType === TemplateComponent
     );
     if (opts.onCompiled) {
       opts.onCompiled(component);
     }
     cache[cacheKey] = factory;

     resolve(factory);
  })
  return cache[cacheKey];
}

答案 1 :(得分:0)

您尝试实施的核心概念似乎是遍历两个阵列,而只输出 <{1}}和 <{ {1}}。

假设您的值是有序的,并且存在于两个单独的数组中,您可以使用两个索引遍历每个数组,并且只在某些匹配条件下递增这些索引。

下面使用两个整数数组提供了一个示例:

list