Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 - Fatal编程技术网

Php 数组包含的值比数据库包含的值多

Php 数组包含的值比数据库包含的值多,php,Php,我很难找到最好的方法,我的代码: $purch = DB::getInstance()->select("SELECT * FROM `purchased`"); foreach($a as $val) { foreach($purch as $v) { $v['purchased_sape_ref_id']; // CONTAINS THE ID FROM THE DB // $val; // CONTAINS THE ID IN THE ARR

我很难找到最好的方法,我的代码:

$purch = DB::getInstance()->select("SELECT * FROM `purchased`");

foreach($a as $val) {
    foreach($purch as $v) {
        $v['purchased_sape_ref_id']; // CONTAINS THE ID FROM THE DB //
        $val; // CONTAINS THE ID IN THE ARRAY //
        if (in_array($v, $val)) {
            echo "This id is in the $a array: " . $v['purchased_sape_ref_id'];
        } else {
            echo "This id is not in the $a array: " . $v['purchased_sape_ref_id'];
        }
    }
}
变量
$a
是一个数组,我已经用ID将其归档(总共90个)。使用
$v
的mysql查询包含87个值,因此数组
$a
$v
多包含3个值(从数据库中提取)


如何显示3个附加值?

您可以使用以下解决方案:

现在,您可以将
$a
中的所有值输出为
$a
:)中存在的值,也可以将
$diff
中的所有值输出为
$a
中不存在的值

提供第一个数组中不在第二个数组中的所有值(作为数组)。使用,您可以直接访问阵列的列。因此,您可以在
购买的\u sape\u ref\u id
列上获得一个包含所有值
$purch
的数组


Demo():

<?php
$a = [1, 2, 3, 4, 5];
$purch = [
    ['test_col' => 'hello', 'purchased_sape_ref_id' => 1],
    ['test_col' => 'world', 'purchased_sape_ref_id' => 2],
    ['test_col' => 'stack', 'purchased_sape_ref_id' => 3]
];

$diff = array_diff($a, array_column($purch, 'purchased_sape_ref_id'));

foreach ($a as $a_value) {
    if (!in_array($a_value, $diff)) {
        echo 'This id is in the $a array: '.$a_value."\n";
    } else {
        echo 'This id is not in the $a array: '.$a_value."\n";
    }
}

如果值为
,则在循环过程中执行
!在数组中($needle,$haystack)
然后将其添加到另一个数组中
$notInArray=[]
如果(!in_数组($v,$a))$notInArray[]=$v现在您有了一个不在原始阵列中的数字阵列感谢您的帮助:)
<?php
$a = [1, 2, 3, 4, 5];
$purch = [
    ['test_col' => 'hello', 'purchased_sape_ref_id' => 1],
    ['test_col' => 'world', 'purchased_sape_ref_id' => 2],
    ['test_col' => 'stack', 'purchased_sape_ref_id' => 3]
];

$diff = array_diff($a, array_column($purch, 'purchased_sape_ref_id'));

foreach ($a as $a_value) {
    if (!in_array($a_value, $diff)) {
        echo 'This id is in the $a array: '.$a_value."\n";
    } else {
        echo 'This id is not in the $a array: '.$a_value."\n";
    }
}