迭代PHP变量(列表/数组),然后根据其值输出索引

时间:2015-07-14 01:06:34

标签: php loops indexing

在PHP中使用以下示例:

$priv['PAGE_A'] = 11;
$priv['PAGE_B'] = 22;
$priv['PAGE_C'] = 33;
$priv['PAGE_D'] = 44;

1)我想迭代$ priv中的4个值。会不会出现#&做正确的方法吗?

2)如果该值高于给定的数字,我想回显该值的索引。不知道怎么做。比较必须是INT(不是字符串)。

实施例。使用" 30"它会输出:

PAGE_C
PAGE_D

有可能吗?或者我可能没有使用正确的容器来做我想做的事情?

PS。你怎么称呼" $ priv"在这个例子中?数组 ?索引变量?一本字典 ?一个清单?

谢谢。

3 个答案:

答案 0 :(得分:4)

基本上是:

<?php
function foo($var){

    $priv['PAGE_A'] = 11;
    $priv['PAGE_B'] = 22;
    $priv['PAGE_C'] = 33;
    $priv['PAGE_D'] = 44;

    $out='';
    foreach ($priv as $k=>$v){

        if ($v >$var){
            $out .= $k.'<br>';
        }
    }
  return $out;
}
echo foo('30');

演示:http://codepad.viper-7.com/GNX7Gf

答案 1 :(得分:1)

只需创建一个包含迭代字母的数组。

$letters = array('A','B','C','D');
for($i=0;$i<count($letters);$i++) {
    if($priv['PAGE_' . $letters[$i]] > /*value*/) {
        echo $priv['PAGE_' . $letters[$i]];
    }
}

$ priv是一个数组。

另外,我不太清楚你究竟想做什么。您是否尝试回显数组元素的值,如果它大于常量值?

答案 2 :(得分:0)

我们可以使用PHP内置数组函数来完成它。如果可能,在性能方面尽可能使用内置函数。

array_walk 将为您提供帮助。在这种情况下, $ priv 是一个关联的PHP数组。以下是一行脚本,它将完成您想要实现的目标:

$input          = 30;
$priv['PAGE_A'] = 11;
$priv['PAGE_B'] = 22;
$priv['PAGE_C'] = 33;
$priv['PAGE_D'] = 44;

array_walk($priv, function($value, $key, $input){ if($value > $input) echo $key . '<br>';}, $input);