【问题标题】:Selecting only even numbers in php output [duplicate]在php输出中只选择偶数[重复]
【发布时间】:2016-10-22 04:13:21
【问题描述】:

我正在尝试在下面的单独输出中选择并仅显示偶数

 function toms($c,$first = 0,$second = 1)
 {
     $toms = [$first,$second];
     for($i=1;$i<$c;$i++)
     {
         $toms[] = $toms[$i]+$toms[$i-1];
     }
     return $toms;
 }
 echo "<pre>";
 print_r(toms(33));
 ?>

目前这个输出

 array
 (
     [0] => 0
     [1] => 1
     [2] => 1
     [3] => 2
     [4] => 3
     [5] => 5
     [6] => 8
     [7] => 13
     [8] => 21
      [9] => 34
     [10] => 55
     [11] => 89
     [12] => 144
     [13] => 233
     [14] => 377
     [15] => 610
     [16] => 987
     [17] => 1597
     [18] => 2584
     [19] => 4181
     [20] => 6765
     [21] => 10946
     [22] => 17711
     [23] => 28657
     [24] => 46368
     [25] => 75025
     [26] => 121393
     [27] => 196418
     [28] => 317811
     [29] => 514229
     [30] => 832040
     [31] => 1346269
     [32] => 2178309
     [33] => 3524578
)

任何人都知道我如何只显示返回的偶数,所以我想要 2、8、34 等等

谢谢你

【问题讨论】:

  • 你必须使用 print_r 吗?您可以使用循环遍历 toms 并仅打印出偶数。
  • 您是否只想列出正偶数(不包括零)?

标签: php


【解决方案1】:

您可以使用array_filter

print_r(array_filter(toms(33), function($number){
    return $number % 2 == 0;
}));

或者如果你想过滤掉0:

print_r(array_filter(toms(33), function($number){
    return $number != 0 && $number % 2 == 0;
}));

更具可读性:

$isEvenNumber = function($number) {
    return $number % 2 == 0;
}

$numbers = toms(33);

$filtered_numbers = array_filter($numbers, $isEvenNumber);

var_dump($filtered_numbers);

【讨论】:

  • 太棒了,谢谢你 :) 并为这么快的评论喝彩
  • 0 % 2 === 0,所以没问题。零是偶数。
  • @Progrock: 同意,我要通过 OP 2、8、34 等等
猜你喜欢
  • 2020-11-28
  • 1970-01-01
  • 2022-08-21
  • 2015-11-26
  • 1970-01-01
  • 2013-07-05
  • 2013-07-01
  • 2021-10-06
相关资源
最近更新 更多