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";
}
}