Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过特定测试的键上的PHP数组过滤器_Php_Arrays_Filter_Key - Fatal编程技术网

通过特定测试的键上的PHP数组过滤器

通过特定测试的键上的PHP数组过滤器,php,arrays,filter,key,Php,Arrays,Filter,Key,我有一个关联的PHP数组,我想生成一个通过特定测试的键列表。比如说 $myArray = ('28'=>0.01,'51'=>-0.1,'48'=>0.4,'53'=>-0.3); 我想用过滤值的方法过滤键。因此,如果我过滤“返回大于0.2的元素”上的值,则 print_r(array_filter($myArray,"biggerThanFilter"); 与 但是如何对显示“keyValueIsBiggerThan50”的键应用过滤器呢 i、 像这样的东西 p

我有一个关联的PHP数组,我想生成一个通过特定测试的键列表。比如说

 $myArray = ('28'=>0.01,'51'=>-0.1,'48'=>0.4,'53'=>-0.3);
我想用过滤值的方法过滤键。因此,如果我过滤“返回大于0.2的元素”上的值,则

 print_r(array_filter($myArray,"biggerThanFilter");

但是如何对显示“keyValueIsBiggerThan50”的键应用过滤器呢

i、 像这样的东西

print_r(array_KEY_filter($myArray,"keyValueIsBiggerThan50");

function keyValueIsBiggerThan50($key){
         return $key*1>50;
}

print_r(keyValueIsBiggerThan50 ($myArray));
您是在寻找这个特定的案例,还是一个通用的案例

print_r(keyValueIsBiggerThan50 ($myArray));
您是在寻找这个特定的案例,还是一个通用的案例

print_r(keyValueIsBiggerThan50 ($myArray));
您是在寻找这个特定的案例,还是一个通用的案例

print_r(keyValueIsBiggerThan50 ($myArray));

您是在寻找这个特定的案例,还是一个通用的案例?

我个人会通过数组键循环并取消设置:

function array_filter_keys($array, callable $fn)
  foreach (array_keys($array) as $key) {
    if (!$fn($key)) unset($array[$key])
  }
  return $array;
}

$filtered_array = array_filter_keys($array, function($key) { return $key > 50 });

这假设PHP>=5.4

我将循环遍历数组_键并取消设置,我个人:

function array_filter_keys($array, callable $fn)
  foreach (array_keys($array) as $key) {
    if (!$fn($key)) unset($array[$key])
  }
  return $array;
}

$filtered_array = array_filter_keys($array, function($key) { return $key > 50 });

这假设PHP>=5.4

我将循环遍历数组_键并取消设置,我个人:

function array_filter_keys($array, callable $fn)
  foreach (array_keys($array) as $key) {
    if (!$fn($key)) unset($array[$key])
  }
  return $array;
}

$filtered_array = array_filter_keys($array, function($key) { return $key > 50 });

这假设PHP>=5.4

我将循环遍历数组_键并取消设置,我个人:

function array_filter_keys($array, callable $fn)
  foreach (array_keys($array) as $key) {
    if (!$fn($key)) unset($array[$key])
  }
  return $array;
}

$filtered_array = array_filter_keys($array, function($key) { return $key > 50 });
这假设PHP5.6+的PHP>=5.4

也适用于此:使用数组\过滤器\使用\键

<?php
$myArray  = ['28' => 0.01, '51' => -0.1, '48' => 0.4, '53' => -0.3];
$filtered = array_filter(
    $myArray,
    function ($key) {
        return $key > 50;
    },
    ARRAY_FILTER_USE_KEY
);
?>

对于PHP5.6+也适用于此:使用数组\过滤器\使用\键

<?php
$myArray  = ['28' => 0.01, '51' => -0.1, '48' => 0.4, '53' => -0.3];
$filtered = array_filter(
    $myArray,
    function ($key) {
        return $key > 50;
    },
    ARRAY_FILTER_USE_KEY
);
?>

对于PHP5.6+也适用于此:使用数组\过滤器\使用\键

<?php
$myArray  = ['28' => 0.01, '51' => -0.1, '48' => 0.4, '53' => -0.3];
$filtered = array_filter(
    $myArray,
    function ($key) {
        return $key > 50;
    },
    ARRAY_FILTER_USE_KEY
);
?>

对于PHP5.6+也适用于此:使用数组\过滤器\使用\键

<?php
$myArray  = ['28' => 0.01, '51' => -0.1, '48' => 0.4, '53' => -0.3];
$filtered = array_filter(
    $myArray,
    function ($key) {
        return $key > 50;
    },
    ARRAY_FILTER_USE_KEY
);
?>

对于PHP<5.6,array_diff_ukey按键对两个数组执行自定义比较,并显示为执行完整的N x M比较,因此您可以使用虚拟数组作为第二个数组来筛选单个数组

使用PHP5.5.9,我使用以下方法从数组中删除数字键元素:

 $res = array_diff_ukey($res, array(0), function ($a,$b){ return is_string($a); });

对于PHP<5.6,array_diff_ukey按键执行两个数组的自定义比较,并显示为执行完整的nx M比较,因此可以使用伪数组作为第二个数组来过滤单个数组

使用PHP5.5.9,我使用以下方法从数组中删除数字键元素:

 $res = array_diff_ukey($res, array(0), function ($a,$b){ return is_string($a); });

对于PHP<5.6,array_diff_ukey按键执行两个数组的自定义比较,并显示为执行完整的nx M比较,因此可以使用伪数组作为第二个数组来过滤单个数组

使用PHP5.5.9,我使用以下方法从数组中删除数字键元素:

 $res = array_diff_ukey($res, array(0), function ($a,$b){ return is_string($a); });

对于PHP<5.6,array_diff_ukey按键执行两个数组的自定义比较,并显示为执行完整的nx M比较,因此可以使用伪数组作为第二个数组来过滤单个数组

使用PHP5.5.9,我使用以下方法从数组中删除数字键元素:

 $res = array_diff_ukey($res, array(0), function ($a,$b){ return is_string($a); });

您只需要获取键,而不需要值?重复:@sigy-是的,我知道(+1)和回答该问题的人的+1。但我的问题更清楚——那篇文章中的问题更多的是为了匹配,而不是通过测试。你只需要获取键,而不需要值?重复:@sigy-是的,我明白了(+1)和+1。但我的问题更清楚——那篇文章中的问题更多的是为了匹配,而不是通过测试。你只需要获取键,而不需要值?重复:@sigy-是的,我明白了(+1)和+1。但我的问题更清楚——那篇文章中的问题更多的是为了匹配,而不是通过测试。你只需要获取键,而不需要值?重复:@sigy-是的,我明白了(+1)和+1。但我的问题更清楚——那篇文章中的问题更多的是为了匹配,而不是通过测试。我想要的是一个更普通的回调,但我喜欢你的答案,在你发布之前我几乎没有机会买咖啡……我想要的是一个更普通的回调,但我喜欢你的答案,我喜欢你的回答在你发布之前,我几乎没有机会买一杯咖啡……我想要的是一个更普通的回调,但我喜欢你的答案,在你发布之前,我几乎没有机会买一杯咖啡……我想要的是一个更普通的回调,但我喜欢你的答案,在你发布之前,我几乎没有机会买一杯咖啡发布…谢谢-可调用是我一直在寻找的,因为我可以使用与byValue函数语法相似的函数。Thx.谢谢-我一直在寻找可调用函数,因为我可以使用与byValue函数语法相似的函数。Thx.谢谢-我一直在寻找可调用函数,因为我可以使用与byValue函数语法相似的函数。Thx.谢谢-我一直在寻找可调用函数,因为我可以使用与byValue函数语法相似的函数。谢谢。