第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在客戶端使用PHP或JavaScript從大量數(shù)據(jù)中通過大量關鍵字一一搜索

在客戶端使用PHP或JavaScript從大量數(shù)據(jù)中通過大量關鍵字一一搜索

侃侃爾雅 2022-01-20 20:30:22
在客戶端使用PHP或JavaScript從大量數(shù)據(jù)中通過大量關鍵字一一搜索表 1 - 包含以十萬為單位的數(shù)據(jù)(列:id、title、description)表 2 - 包含 25k 個關鍵字。(列:id,關鍵字)現(xiàn)在我想在 Table1 中逐個關鍵字搜索數(shù)據(jù),但我只想從 Table1 中的 2-3k 數(shù)據(jù)中搜索(僅在標題、描述列中)。所以我計劃,首先在一些對象(如數(shù)據(jù)表、數(shù)組等)中獲取那些 2-3k 數(shù)據(jù),然后在對象中逐個搜索關鍵字,并且當任何關鍵字在 Table1 中匹配時(僅在標題、描述列中)。MATCH[] 數(shù)組中這些數(shù)據(jù)的對象存儲 ID 與 NOTMATCH[] 數(shù)組中存儲的數(shù)據(jù) ID 不匹配。示例:Table1(100 000 行)id  title                           description1   dell laptop                     laptop i3 5000 xyz2   hp machine                      hp xyz abc utr3   supply motor 1500               Decorative Watches4   Deep Groove Drill Ball Bearing  Deep Hole Drill示例:Table2(26 000 行)id             keyword1              dell2              Drill這是我的代碼。我希望對其進行一些改進以實現(xiàn)快速..或其他邏輯。當任何關鍵字輸入搜索輸入并顯示結果時,就像引導數(shù)據(jù)表客戶端搜索過程一樣工作。<html>    <body>        <?php        //this data from table1        $data = array(            "0"=>array(                "ID" => "1234",                "title" => "dell laptop",                "description" => "dell laptop i3 5000 xyz",                ),            "1"=>array(                "ID" => "1238",                "title" => "hp machine",                "description" => "hp xyz abc utr",            ),            "2"=>array(                "ID" => "1240",                "title" => "supply motor 1500",                "description" => "Decorative Watches",            ),            "3"=>array(                "ID" => "1245",                "title" => "Deep Groove Drill Ball Bearing",                "description" => "Deep Hole Drill",            ),        );        $MATCH =array();        $NOTMATCH =array();        $keywords =array('dell','watches'); //this data from table2        echo "<pre>";    </body></html>那么我怎樣才能按照我的計劃編寫代碼。
查看完整描述

2 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

根據(jù)您的示例(obv 您將適應您的代碼):


function myFunction() {

  // Declare variables

  var input, filter, table, tr, td, i, txtValue;

  input = document.getElementById("myInput");

  filter = input.value.toUpperCase();

  table = document.getElementById("myTable");

  tr = table.getElementsByTagName("tr");


  // Loop through all table rows, and hide those who don't match the search query

  for (i = 0; i < tr.length; i++) {

    td = tr[i].getElementsByTagName("td")[0];

    if (td) {

      txtValue = td.textContent || td.innerText;

      if (txtValue.toUpperCase().indexOf(filter) > -1) {

        tr[i].style.display = "";

      } else {

        tr[i].style.display = "none";

      }

    }

  }

}

#myInput {

  background-image: url('/css/searchicon.png'); /* Add a search icon to input */

  background-position: 10px 12px; /* Position the search icon */

  background-repeat: no-repeat; /* Do not repeat the icon image */

  width: 100%; /* Full-width */

  font-size: 16px; /* Increase font-size */

  padding: 12px 20px 12px 40px; /* Add some padding */

  border: 1px solid #ddd; /* Add a grey border */

  margin-bottom: 12px; /* Add some space below the input */

}


#myTable {

  border-collapse: collapse; /* Collapse borders */

  width: 100%; /* Full-width */

  border: 1px solid #ddd; /* Add a grey border */

  font-size: 18px; /* Increase font-size */

}


#myTable th, #myTable td {

  text-align: left; /* Left-align text */

  padding: 12px; /* Add padding */

}


#myTable tr {

  /* Add a bottom border to all table rows */

  border-bottom: 1px solid #ddd;

}


#myTable tr.header, #myTable tr:hover {

  /* Add a grey background color to the table header and on hover */

  background-color: #f1f1f1;

}

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">


<table id="myTable">

  <tr class="header">

    <th style="width:60%;">ROW 1</th>

    <th style="width:40%;">ROW 2</th>

  </tr>

  <tr>

        <td>RESULT</td>

    <td>RESULT 2</td>

  </tr>

  <tr>

        <td>RESULT 3</td>

    <td>RESULT 4</td>

  </tr>

  <tr>

      <td>RESULT 5</td>

    <td>RESULT 6</td>

  </tr>

  <tr>

    <td>RESULT 7</td>

    <td>RESULT 8</td>

  </tr>

</table>

提示:如果要執(zhí)行區(qū)分大小寫的搜索,請刪除 toUpperCase()。

提示:如果要搜索“國家”(索引 1)而不是“名稱”(索引 0),請將 tr[i].getElementsByTagName('td')[0] 更改為 [1]。


查看完整回答
反對 回復 2022-01-20
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

這是我想要的最好的代碼,它將使用 PHP Array 在大約 2000 個數(shù)據(jù)中一一搜索大約 26000 個關鍵字。它比通過查詢在 SQL 表中搜索要快得多。


<?php

$data = array(); // Array value added from mysql database table 2000 rows (columns : ID, title, description)

$keywords = array(); // Array value added from mysql database table 26000 rows (column : keyword)

if (!$data)

{

    echo "<script> alert('No Data available for Search...!');</script>";

    exit();

}

$MATCHID =array();

$NOTMATCHID =array();


set_time_limit(0);// 0 = NOLIMIT

for($i = 0; $i < count($data); $i++)

{

    $ID = $data[$i]['ID'];

    foreach($keywords as $value)

    {

        $pattern = "/ ".$value." /i";  //contains pattern

        $dd = preg_grep($pattern, $data[$i]);

        if($dd)

        {

            if (in_array($ID, $NOTMATCHID))

            {

                $NOTMATCHID = array_diff($NOTMATCHID, array($ID));

            }

            $MATCHID[] = $ID;

            break 1;

        }

        else

        {

            if (!in_array($ID, $NOTMATCHID))

            {

                $NOTMATCHID[] = $ID;

            }

        }

    }

}

echo "<pre>";

echo "****Found IDs****<BR>";

print_r($MATCHID);

echo "<BR>****NOT Found IDs****<BR>";

print_r($NOTMATCHID);

?>


查看完整回答
反對 回復 2022-01-20
  • 2 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號