首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个结果的PHP (不包括数组中的值)

每个结果的PHP (不包括数组中的值)
EN

Stack Overflow用户
提问于 2014-08-25 15:45:39
回答 3查看 249关注 0票数 0

我将一个表查询到一个数组中,但我希望从其中一个列中排除某些值,以便将每一行都排出来。例如。

代码语言:javascript
复制
foreach($results as $row)
{
         if($row['sku'] != "sku-1"){
             echo $row['sku']." ";
         }
}

因此,假设表有4行,值为sku-1、sku-2、sku-3和sku-4。上述Foreach代码将呼应"sku-2 sku-3 sku-4“。是否有一种方法可以使数组显示我想要排除的值?就像我有一个名为$skuarray = "sku-2,sku-4“的数组,而不是

代码语言:javascript
复制
if($row['sku'] != "sku-2" || $row['sku'] != "sku-4"){

那个$skuarray在那里会回响"sku-1,sku-3“吗?谢谢!

编辑

当我质疑它时,我可以排除它。我从表SKUTABLE查询它,列是SKU。问题是,我需要从SKU列中排除唯一的值,所以我想,如果有一种简单的方法,只需将所有想要排除的值放入一个很棒的数组中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-25 15:50:07

使用in_array

代码语言:javascript
复制
$skuarray = array("sku-2", "sku-4");

foreach($results as $row)
{
         if(!in_array($row['sku'], $skuarray)){
             echo $row['sku']." ";
         }
}
票数 0
EN

Stack Overflow用户

发布于 2014-08-25 15:53:57

您可以使用array_diff(array1, array2, [...arrayN])函数,它至少接受两个数组,并返回一个数组,该数组只返回不包含在后续任何数组中的array1值。示例:

代码语言:javascript
复制
$input = array(0=>'sku-1',1=>'sku-2',2=>'sku-3',3=>'sku-4');
$exclude = array('sku-1','sku-3','sku-4');
$result = array_diff($input, $exclude);
print_r($result);

将打印

代码语言:javascript
复制
array(1=>'sku-2');
票数 1
EN

Stack Overflow用户

发布于 2014-08-25 15:53:14

您可以结合使用array_filterin_array

代码语言:javascript
复制
$filtered_results = array_filter($results, function ($row) {
    return in_array($row["sku"], $skuarray) === false;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25489632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档