【问题标题】:How to filter an array based on 2 values如何根据 2 个值过滤数组
【发布时间】:2012-03-12 18:00:31
【问题描述】:

我有一个包含多个行集的数组,包括类型、标题和描述....我需要过滤数组并仅显示基于 type = "education" 和 type = "experience" 的那些行集。

foreach () { if (type = 'experience') ..do something / else ... do something else}?

【问题讨论】:

  • 数组在哪里?您可以发布该数组的 var_dump/print_r 吗?
  • 你是从数据库查询中获取数组

标签: php arrays multidimensional-array filtering


【解决方案1】:

使用array_filter

function myfilter($row){
    return ($row['type']=='experience'|| $row['type']=='education'); 
}
$result = array_filter($input_array, 'myfilter');

array_filter 函数保留原始数组的键。如果你不希望这种行为使用array_values

$result = array_values(array_filter($input_array, 'myfilter'));

【讨论】:

    【解决方案2】:
    $array = array(array('type'=>'experience','title'=>'xyz','des'=>'dfasdasdasdas'),
            array('type'=>'education','title'=>'xddfdfyz','des'=>'dfasdasdasdas'),
        array('type'=>'dsad','title'=>'afdf','des'=>'dfasdasdasdas'),
        array('type'=>'education','title'=>'gfdsfr','des'=>'dfasdasdasdas'));
    
    foreach($array as $value){
        if($value['type'] == 'experience'){
            //do your stuff
        }else if ($value['type'] == 'education'){
            //do your stuff
        }else{
            //do your stuff
        }
    }
    

    假设您的数组结构如图所示,如果条件为,您可以更改 foreach 循环

     if($value['type'] == 'experience' || $value['type'] == 'education'){
    //do your stuff
    }else{
    //do your stuff
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-12
      • 2017-03-13
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多