当前位置: 首页 > 知识库问答 >
问题:

如何在不同的div中显示preg_match结果,以便在正确的标题下显示多个结果?

滑文昌
2023-03-14

如果这很简单,请原谅,但我有一个for-each循环,用于搜索JSON数据以获得搜索结果。然后我有一些preg_match语句,它们将查看JSON中的一些标记,如果它们是匹配的,则在div中显示缩略图。目前所有这些都可以使用。但它目前在自己的Div中显示每个结果,如果有匹配,我只需要五个Div,其中包含多个图像。

foreach ($hits as $hit)
{
  
  $target = $hit->metadata->baseName;
  $target1 = $hit->metadata->cf_imageType;

  if(preg_match("/_cm/i",$target)) {
    echo '<div id="div5">';
    echo '<h2>Creative</h2>';
    echo "<img src='" . $hit->thumbnailUrl . "' alt='error'>";
    echo $hit->metadata->baseName; 
    echo '</div>';
  }
  if(preg_match("/_SS/i",$target)) {
    echo '<div id="div6">';
    echo '<h2>Styled</h2>';
    echo "<img src='" . $hit->thumbnailUrl . "' alt='error'>";
    echo $hit->metadata->baseName; 
    echo '</div>';
  }
  if(preg_match("/_SH/i",$target)) {
    echo '<div id="div7">';
    echo '<h2>Group</h2>';
    echo "<img src='" . $hit->thumbnailUrl . "' alt='error'>";
    echo $hit->metadata->baseName; 
    echo '</div>';
  }
  if(preg_match("/still life/i",$target1) && preg_match("/_sm_00|_sd_00/i",$target)) {
    echo '<div id="div8">';
    echo '<h2>Cutout</h2>';
    echo "<img src='" . $hit->thumbnailUrl . "' alt='error'>";
    echo $hit->metadata->baseName; 
    echo '</div>';
  }
  if(preg_match("/worn/i",$target1)) {
    echo '<div id="div9">';
    echo '<h2>Worn</h2>';
    echo "<img src='" . $hit->thumbnailUrl . "' alt='error'>";
    echo $hit->metadata->baseName; 
    echo '</div>';
  }
}

我不太明白如何实现这一点,会是把结果放入数组,然后在div中显示结果的情况吗?

任何帮助都将不胜感激。

共有1个答案

巫马昆杰
2023-03-14

你是对的,你自己回答了这个问题:)

第一步收集结果,第二步创建标记。像这样的东西可以做到:

$creative = [];
$styled   = [];

/* ... */

function getHitInfos($theHit)
{
    return [
      "url" => $theHit->thumbnailUrl,
      "name" => $theHit->metadata->baseName
    ];
}

function printResults($results, $title) {
    echo '<div>';
    echo '<h2>'.$title.'</h2>';

    foreach ($results as $key => $val) {
        echo "<img src='" . $val["url"] . "' alt='error'>";
        echo $val["name"]; 
    }
    echo '</div>';
}

foreach ($hits as $hit)
{
    $target  = $hit->metadata->baseName;
    $target1 = $hit->metadata->cf_imageType;

    echo '<div>';
    if(preg_match("/_cm/i",$target)) {
      $creative[] = getHitInfos($hit)
    }
    if(preg_match("/_SS/i",$target)) {
      $styled[] = getHitInfos($hit)
    }

    /* ... */
}

printResults($creative, "Creative");
printResults($styled, "Styled");

/* ... */

免责声明:我最后一次接触php是几年前,但我希望您能明白这一点。(我还创建了一些帮助函数来干燥代码

 类似资料:
  • 我正在CodeIgniter上开发一个测验应用程序。 随机从数据库中挑选25个问题并显示给用户。 以下是我的代码: 我想在一个div上显示前10个结果。 当用户单击下一个按钮时,它会显示下一个10个结果。 (隐藏当前div并显示下一个) 我只想知道我如何打破结果,并限制每个分区10个问题。

  • 我正在做一些性能评估的Java阿格拉捷操作,以迭代集合。我正在评估和的性能。但是我发现的输出大多数时候都是错误的。例如,在下面的代码中,有80%以上的时间输出错误: 我的问题是:我是否以错误的方式使用了?是否有任何方法可以确保的正确性。谢谢

  • 问题内容: 激活脚本的以下部分时,它将在结果中显示所有逗号和单引号(和括号)。 因此,例如: 我想清理它,所以看起来不错。那可能吗? 我所说的“好”是这样的: 这是完整的脚本: 问题答案: 你需要。 在Python 2.x中,您正在执行的操作被解释为在使用3.x语法时打印一个元组。 例:

  • 我对html和java非常陌生。 我有一个java函数 代码如下: 以下是我输入的html代码: 例如 超文本标记语言: JAVA:

  • 问题内容: 我有一个简单的jquery代码,用ajax在jQuery模态窗口中发送内容!一切正常,没有任何问题。通常,单击发送按钮后,此代码会在1-2秒后显示结果, 我的问题是,如何在单击“发送”之后显示结果之前添加并显示加载图片? 问题答案: 您可以通过 和 要么

  • 我创建一个PHP计算器,需要使用以下类,然后打印出用户的名字和他们取得的平均分数。这是我到目前为止的代码,但是它没有正确显示,它说有丢失的参数和未定义的变量,但是我不确定我哪里出错了! 错误消息:警告:在C:\Program Files(x86)\EasyHP-DevServer-14.1VC11\data\localweb\my portable Files\练习4\average中调用的stu