在函数参数中使用foreach变量来循环函数

时间:2018-02-23 00:42:18

标签: php arrays function foreach

我有以下代码:

$data = [
    ['foo' => 1, 'bar' => 3],
    ['foo' => 2, 'bar' => 4]
];


function go($coming_data, $run) {

    foreach($coming_data as $item) {
        return $run;
    }

}

echo go($data, $item['bar']);

并且,我需要得到34输出,我应该使用这个结构,因为这个代码运行我的自定义表创建者bla bla,所以我想作为$ item [' bar']变量作为函数参数但是这个在函数的foreach循环中无法识别。

所以,我需要的是能够在函数中定义$ item变量,比如使用eval recursive

在这种情况下我该怎么办?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

不是传递您键入的实际代码,而是传递您要收集的密钥的字符串值。

这假设您的数据将是一个由索引或关联数组(或两者都组成!)组成的索引数组。它遍历数组,如果有匹配的键,它开始构建返回字符串或将其添加到返回字符串。就个人而言,我会将$retval字符串更改为数组并将其返回到调用位置...

<?php

$data = [
    ['foo' => 1, 'bar' => 3],
    ['foo' => 2, 'bar' => 4]
];


function go($coming_data, $run) {

    for($i=0;$i<count($coming_data);$i++){
        if(isset($coming_data[$i][$run])){
            if(!isset($retval)){
                $retval=$coming_data[$i][$run];
            }else{
                $retval.=$coming_data[$i][$run];
            }
        }
    }

    return $retval;

}

echo go($data, 'bar');

?>