如何仅在php中打印新数组值

问题描述 投票:0回答:2

假设我有一个像这样的数组:

Array
(
 [0] => Array
   (
    [0] => John
    [1] => accountant
    [2] => senior
    [3] => joined on 2018-03-12
    [4] => http://personalblog[dot]com/abc
    [5] => Germany 
)

[1] => Array
   (
    [0] => Marry
    [1] => journalist
    [2] => junior
    [3] => 2019-04-13
    [4] => http://personalblog[dot]com/efd
    [5] => Canada
)
[2] => Array
   (
    [0] => Jim
    [1] => salesman
    [2] => junior
    [3] => 2017-01-18
    [4] => http://personalblog[dot]com/ehs
    [5] => US
)
[3] => Array
   (
    [0] => Clair
    [1] => director assistant
    [2] => senior
    [3] => 2019-08-22
    [4] => http://personalblog[dot]com/khh
    [5] => Singapore
   )
)

而且我有一个这样的表:

id      name    ...      Date_joined
---------------------------------
1      Jack     ...      2019-07-25
2      Clair    ...      2019-08-22
3      Jim      ...      2017-01-18

我执行foreach loop来获得上面数组的values,如下所示:

foreach ($arr as $key => $value){
    echo  $value.'<br />';
}

然后我通过使用name column查询来检索表的SELECT

$query = "SELECT name FROM tabeName";
$r = mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){
    echo $row['name'].'<br />';
}

[我想得到的是将数组值*中的一个与表中的名称进行比较,这样我就只能print到目前为止尚未在表中的数组值,即[[嫁给约翰。

我被困在这一步,因为我在if内部尝试了while loop有条件,如下所示:

if($row['name']!= $value[0]){ echo $value[0].'<br />'; }else{ echo 'No new value found'; }

但是我只是从表中获得了所有名称3次,而不是根据需要从数组中获得了新名称

Marry

John的唯一新数组值。您能帮我吗?

谢谢

php
2个回答
1
投票
您需要使用in_array()array_column(),如下所示:

$userNamesArray = array_column($arr,'0'); $query = "SELECT name FROM tabeName"; $r = mysqli_query($dbc, $query); while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){ if(!in_array($row['name'], $userNamesArray)){ echo $row['name'].'<br />'; } }

在仔细阅读了您的代码之后,我知道您需要像这样尝试:

$userNamesArray = array_column($arr,'0'); $query = "SELECT name FROM tabeName"; $r = mysqli_query($dbc, $query); $rows = mysqli_fetch_all($r, MYSQLI_ASSOC); $rowsName = array_column($rows,'name'); foreach($userNamesArray as $userNamesArr){ if(!in_array($userNamesArr, $rowsName)){ echo $userNamesArr."<br>"; } }

样本输出:-https://3v4l.org/CliVT

0
投票
您只能通过数组名称创建数组。然后在比较时只需检查in_array()函数。这样可以解决问题。
© www.soinside.com 2019 - 2024. All rights reserved.