如何在仅定义密钥时使用foreach

时间:2015-11-06 12:54:31

标签: php eclipse

所以我有这个有点烦人的问题:说我有这样的foreach循环:



foreach ($arr as $key=>$value) {
        do_something($key);
    }




在我的eclipse环境中,我打开了显示未使用变量警告的功能,这非常有用。然而,它抱怨所有这样的事件,其中$value未在循环中使用。

我想知道是否有一些语法我不会使用它,就像list()一样:



list(,,$my_var) = some_func();




//这些返回一个包含3个元素的数组,但我只需要最后一个

注意:显而易见的是使用array_keys(),但我不想要函数调用;我只是问是否有我不知道的简写,或类似的东西。这就是为什么问题PHP foreach that returns keys only不能涵盖我所要求的内容。

2 个答案:

答案 0 :(得分:1)

TBH,我找不到任何资源来支持这个答案,就我的测试而言,它的工作正常,但是我不能说这是否是或者不推荐给我使用(可能不是)

以下是我提出的建议:

$arr = array('kN1' => '50', 'kN2' => 400);
//$arr = array('50', 400);
foreach ($arr as $var => $var) { // use same variable for both key and value
    print_r($var);
    echo '<br>';
}
// kN1
// kN2

Run Viper

答案 1 :(得分:0)

要摆脱警告而不引入过多开销,只需在循环完成后取消设置未使用的变量即可。

foreach ($arr as $key => &$val) { 
    print_r($key);
}
unset($val);

顺便说一句:我相信应该使用对未使用变量(&$val而不是$val的引用)。否则,您可能会在每次迭代时最终生成变量的完整副本,并且这可能是一项昂贵的操作。