Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查数组中的值是否存在于另一个数组中_Php_Html - Fatal编程技术网

PHP检查数组中的值是否存在于另一个数组中

PHP检查数组中的值是否存在于另一个数组中,php,html,Php,Html,我的项目中有两个阵列。它们是“$results”和“$hits\u navn” $hits\u navn如下所示: Array ( [0] => HOPLAND ROGER [1] => TRACKSON AS ) array(4) { [0]=> array(5) { ["_index"]=> string(19) "aksjeregisteret2017" ["_type"]=> string(3) "doc"

我的项目中有两个阵列。它们是“$results”和“$hits\u navn”

$hits\u navn如下所示:

Array ( [0] => HOPLAND ROGER [1] => TRACKSON AS ) 
array(4) {
  [0]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "vBDH72QBa47gCFuEn-e4"
    ["_score"]=>
    float(168.98682)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(2) "50"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(78) "998814308;TRACKSON AS;Ordinære aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;50;1000
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:59:54.203Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(11) "TRACKSON AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "998814308"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(4) "1000"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(16) "Ordinære aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [1]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "4ge772QBa47gCFuEh2bs"
    ["_score"]=>
    float(151.22754)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(4) "1980"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(80) "980645525;ETRINELL AS;NO0010022411;SKEIDE ROALD;1973;3047;DRAMMEN;1980;42078314
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:46:41.674Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(11) "ETRINELL AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "980645525"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(8) "42078314"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(12) "NO0010022411"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [2]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "pw3C72QBa47gCFuE4jau"
    ["_score"]=>
    float(145.292)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(2) "10"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(70) "991715649;GOLDENWOOD AS;A-aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;10;10
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:54:43.517Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(13) "GOLDENWOOD AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "991715649"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(2) "10"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(8) "A-aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [3]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "xQq_72QBa47gCFuE49kk"
    ["_score"]=>
    float(139.8048)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(3) "300"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(92) "987199458;REVISORGRUPPEN DRAMMEN AS;Ordinære aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;300;300
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:51:27.213Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(25) "REVISORGRUPPEN DRAMMEN AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "987199458"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(3) "300"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(16) "Ordinære aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
}
虽然$results如下所示:

Array ( [0] => HOPLAND ROGER [1] => TRACKSON AS ) 
array(4) {
  [0]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "vBDH72QBa47gCFuEn-e4"
    ["_score"]=>
    float(168.98682)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(2) "50"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(78) "998814308;TRACKSON AS;Ordinære aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;50;1000
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:59:54.203Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(11) "TRACKSON AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "998814308"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(4) "1000"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(16) "Ordinære aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [1]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "4ge772QBa47gCFuEh2bs"
    ["_score"]=>
    float(151.22754)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(4) "1980"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(80) "980645525;ETRINELL AS;NO0010022411;SKEIDE ROALD;1973;3047;DRAMMEN;1980;42078314
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:46:41.674Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(11) "ETRINELL AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "980645525"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(8) "42078314"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(12) "NO0010022411"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [2]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "pw3C72QBa47gCFuE4jau"
    ["_score"]=>
    float(145.292)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(2) "10"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(70) "991715649;GOLDENWOOD AS;A-aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;10;10
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:54:43.517Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(13) "GOLDENWOOD AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "991715649"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(2) "10"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(8) "A-aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
  [3]=>
  array(5) {
    ["_index"]=>
    string(19) "aksjeregisteret2017"
    ["_type"]=>
    string(3) "doc"
    ["_id"]=>
    string(20) "xQq_72QBa47gCFuE49kk"
    ["_score"]=>
    float(139.8048)
    ["_source"]=>
    array(14) {
      ["Antall Aksjer"]=>
      string(3) "300"
      ["host"]=>
      string(2) "dr"
      ["message"]=>
      string(92) "987199458;REVISORGRUPPEN DRAMMEN AS;Ordinære aksjer;SKEIDE ROALD;1973;3047;DRAMMEN;300;300
"
      ["@timestamp"]=>
      string(24) "2018-07-31T09:51:27.213Z"
      ["Poststed"]=>
      string(7) "DRAMMEN"
      ["Selskap"]=>
      string(25) "REVISORGRUPPEN DRAMMEN AS"
      ["Navn Aksjoner"]=>
      string(12) "SKEIDE ROALD"
      ["Orgnr"]=>
      string(9) "987199458"
      ["Postnr"]=>
      string(4) "3047"
      ["Antall Aksjer Selskap"]=>
      string(3) "300"
      ["@version"]=>
      string(1) "1"
      ["Fodselar/Orgnr"]=>
      string(4) "1973"
      ["Aksjeklasse"]=>
      string(16) "Ordinære aksjer"
      ["path"]=>
      string(44) "/home/ole/Nedlastinger/Aksjeeierbok22017.csv"
    }
  }
}
我试图做的是检查$hits\u navn中的值是否存在于$results的一个或多个索引(0或[1]等)中。如果它们确实存在(也就是有匹配项),我想将它们输入页面上的html表中

我拿不到它。我尝试过在一段时间内使用if(array\u key\u exists),但这样做并没有得到任何结果。我尝试添加foreach($results as$results),但这会导致以下错误:

Warning: array_key_exists() expects parameter 2 to be array, string given in /var/www/html/altinn/index.php on line 195
四次

我显然做错了什么。有没有合适的方法来做这样的事情

我正在使用的代码:

$tal = 0;
while ($tal < count($hits_navn)) {
    foreach ($results as $results) {
        if (array_key_exists($hits_navn[$tal], $results['_source'])) {

        //Creates the first row of the table.
        if (!isset($it)) {
        echo "<div class='container'>
        <div class='table-responsive'>
        <table class='table table-hover'>
        <thead class='thead-light'>
        <tr>
        <th scope='col'>Orgnr</th>
        <th scope='col'>Selskap</th>
        <th scope='col'>Navn Aksjoner</th>
        <th scope='col'>Fodselar/Orgnr</th>
        <th scope='col'>Antall Aksjer</th>
        <th scope='col'>Antall Aksjer Selskap</th>
        </tr>
        </thead>";
        $it = 1;
        }

        //Creates all other rows in the table.
        <tr>
        <td><?php echo $results['_source']['Orgnr'] ?></td>
        <td><?php echo $results['_source']['Selskap'] ?></td>
        <td><?php echo $results['_source']['Navn Aksjoner'] ?></td>
        <td><?php echo $results['_source']['Fodselar/Orgnr'] ?></td>
        <td><?php echo $results['_source']['Antall Aksjer'] ?></td>
        <td><?php echo $results['_source']['Antall Aksjer Selskap'] ?></td>
        </tr>
        <?php
        }
    }
    $tal++;
} 
$tal=0;
而($tal我认为您可以使用
array\u intersect
来获得所需的结果

例如:

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
尝试在
\u源
子数组中使用此选项。

数组\u key\u exists()是在数组的键中搜索,而不是在值中搜索

以下是您可以做的:

$tableHeader = "[header]"; // put the header of the table here
$tableContent = "";

foreach ($results as $result) {
    foreach ($hits_navn as $navn) {
        // found in results array
        if (in_array($navn, $result) or in_array($navn, $result['source')) {
            $tableContent .= "[row content]"; // create a row for the table
        }
    }
}

$table = $tableHeader . $tableContent;

这似乎起作用了!请给我一些时间来正确测试它,我会返回。@Ole只需在“if()中将$result['source']的键更改为$result['u source']声明,我写错了。是的,我修复了那个部分,并输入了我的表头和内容。我稍后会尝试回来发布我使用的全部代码,但现在我会标记这个答案,因为它似乎有效。非常感谢!