【问题标题】:PHP array_filter multi callbackPHP array_filter 多回调
【发布时间】:2016-09-14 11:22:52
【问题描述】:

如何设置multifiltermulticallback

我想同时按CityConfirm 过滤数据。

输入数据:

$data1 = array(
            "L1" => array('Vanessa', 'Prague', 'OK'),
            "L2" => array('Alex', 'Paris', 'OK'),
            "L3" => array('Paul', 'Paris', 'OK'),
            "L4" => array('John', 'Madrid', 'OK'),
            "L5" => array('Jane', 'London', 'Waiting'),
            "L6" => array('David', 'Prague', 'OK'),
            "L7" => array('Martin', 'Prague', 'Waiting'),
            "L8" => array('Frank', 'Prague', 'OK'),
            "L9" => array('Joseph', 'Prague', 'Waiting'),
            ); 

过滤代码:

$ByConfirm = 'OK'; 
$ByCity = 'Prague';

以下是我的问题。我尝试使用&&,但它单独工作,我需要$filterByConfirm + $filterByCity的合作

$new = array_filter($data1, $filterByConfirm && $filterByCity);

      $filterByConfirm =  $new = array_filter($data1, function ($var) use ($ByConfirm) {
            return ($var[2] == $ByConfirm); 
      });

      $filterByCity =  $new = array_filter($data1, function ($var) use ($ByCity) {
            return ($var[1] == $ByCity); 
      });

实际结果:

Name    City    Confirm
Vanessa Prague  OK
David   Prague  OK
Martin  Prague  Waiting
Frank   Prague  OK
Joseph  Prague  Waiting

我需要:

Name    City    Confirm
Vanessa Prague  OK
David   Prague  OK
Frank   Prague  OK

【问题讨论】:

  • 您是否考虑过使用数据库过滤表格数据?
  • 当然,但我是业余爱好者。这个解决方案对于我的小项目来说已经足够了,也许以后。

标签: callback array-filter


【解决方案1】:

最后,解决方案如下: PHP 5.2: Filter array with multiple arguments performance

$arrayToCompare = array('type'=>'fruits','has_name'=>'OK', 'has_color'=>'Prague');

$new = array_filter(
                $data1,
                function ($arr) use ($arrayToCompare) { // PHP 5.3 is required here!!
                    return ($arr[2] == $arrayToCompare['has_name']
                        AND $arr[1] == $arrayToCompare['has_color']);
                }
            );

【讨论】:

    猜你喜欢
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多