将数组键与字符串匹配,然后向键值添加一个函数-php

将数组键与字符串匹配,然后向键值添加一个函数-php,php,arrays,Php,Arrays,我试图比较一个字符串和一个数组键,如果它们匹配,我想调用一个函数来替换匹配键的值 我的阵列: Array ( [id] => 1 [username] => Ahmed [name] => Ahmed Jalal [avatar] => no_avatar.png ) 我的职能: resizer($avatar,'50'); 我用这个cod来做这项工作 $query = $db->prepare($mysql); $db->stmt_assoc($quer

我试图比较一个字符串和一个数组键,如果它们匹配,我想调用一个函数来替换匹配键的值

我的阵列:

Array ( [id] => 1 [username] => Ahmed [name] => Ahmed Jalal [avatar] => no_avatar.png )
我的职能:

resizer($avatar,'50');
我用这个cod来做这项工作

$query = $db->prepare($mysql);
$db->stmt_assoc($query, $table);
$query->fetch();
if ($table['avatar']) {
$data[] = call_user_func('resizer', $table['avatar'],'50');
$table['avatar']=$data;
}
if($type == 'json'){
return json_encode($data);
}else{
return $table;
}

好的,很抱歉我的误解,这里是一些基于您提供的数组的代码。它将把每个键转换为变量的名称,并将该键的值存储在命名变量中

$g['id'] = 1;
$g['username'] = 'Ahmed';
$g['name'] = 'Ahmed Jalal';
$g['avatar'] = 'no_avatar.png';

foreach($g as $k => $v)
{
    $$k = $v;
}

echo $avatar; // displays no_avatar.png

是的,如果您在使用gd或imagemagick或php的另一个gfx添加项时在avatar或新数组键中包含图像的路径,则可以使用resize。

我不知道我的问题对您来说有何意义,alexender!你的编辑绝对不在一个地方。如果你没有得到这个问题,请再读一遍。
unset($avatar)这可能不起作用,因为必须在数组变量中指定键。你能解释一下上面的代码正在做什么/应该做什么吗?我正在尝试遍历php数组的每个键,并将该键与字符串匹配,比如字符串的“avatar”。然后向“avatar”键值添加一个php函数,然后使用专门用于该键值的php函数修改avatar键值。如果
$table
是一个数组,您是否尝试过
foreach()
?之前,我很困惑您正在循环数据库中的结果集。另外,取消设置数组键然后传递值也不起作用,您可能希望在传递值后再这样做。即使我尝试foreach(),我似乎也找不到解决方案,尤其是在使用php v.5.2时