Php 在给定数组中查找偶数
例如,给定的数组是Php 在给定数组中查找偶数,php,arrays,Php,Arrays,例如,给定的数组是 $data = array(1, ‘alpha’, 4, array(‘gamma’, 6, 8, array(7,9,11,90), 22, 60), 14, 51, ‘beta’); 预期的结果是 array(4, array(6, 8, array(90), 22, 60), 14) 我试过这个密码 function getEvenValues($array, $holder = array()) { foreach ($array as $value) {
$data = array(1, ‘alpha’, 4, array(‘gamma’, 6, 8, array(7,9,11,90), 22, 60), 14, 51, ‘beta’);
预期的结果是
array(4, array(6, 8, array(90), 22, 60), 14)
我试过这个密码
function getEvenValues($array, $holder = array()) {
foreach ($array as $value) {
if (gettype($value) == 'array') {
getEvenValues($value);
}
else if(gettype($value) == 'integer'){
if($value % 2 == 0){
array_push($holder, $value);
}
}
}
return $holder;
}
print_r(getEvenValues($data));
但未得到预期结果请检查以下代码:
function getEvenValues($array, $holder = array()) {
foreach ($array as $value) {
if (is_array($value)) {
array_push($holder,getEvenValues($value));
}
else if(gettype($value) == 'integer'){
if($value % 2 == 0){
array_push($holder, $value);
}
}
}
return $holder;
}
我将向您提供预期结果。请检查以下代码:
function getEvenValues($array, $holder = array()) {
foreach ($array as $value) {
if (is_array($value)) {
array_push($holder,getEvenValues($value));
}
else if(gettype($value) == 'integer'){
if($value % 2 == 0){
array_push($holder, $value);
}
}
}
return $holder;
}
function findEvens ($arr) {
$res = [];
foreach($arr as $k => $v) {
if (gettype($v) == 'integer') {
if ($v % 2 == 0) $res[] = $v;
} else if (is_array($v)) {
$res[] = findEvens($v);
}
}
return $res;
}
我将向您提供预期结果。结果是什么。为了避免我们不得不复制/粘贴代码并为自己运行它,实际上您需要查找递归。看几个例子,看看YOU做错了什么。预期的结果是什么?预期的结果是数组(4,数组(6,8,数组(90),22,60),14)结果是什么。为了避免我们不得不复制/粘贴代码并为自己运行它,实际上您需要查找递归。看几个例子,看看YOU做错了什么。预期的结果是什么?预期的结果是数组(4,数组(6,8,数组(90),22,60),14)
function findEvens ($arr) {
$res = [];
foreach($arr as $k => $v) {
if (gettype($v) == 'integer') {
if ($v % 2 == 0) $res[] = $v;
} else if (is_array($v)) {
$res[] = findEvens($v);
}
}
return $res;
}