我有以下代码:
$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
在这种情况下我该怎么办?谢谢你的帮助。
答案 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');
?>