这个PHP函数有什么问题

时间:2014-08-06 13:42:34

标签: php

我试图从数组中提取一个值,如果它存在于数组中,但即使我知道该值存在,我也总是为null

这是有效的

$data['key']

这不起作用。 getVal1返回null

$sql2="INSERT INTO test (text, date) VALUES ('".getVal1('key',$data)."', NOW())";


function getVal1($name,$d){
        if ($d !=null && in_array($name, $d) ) {
            return $d[$name];
        }
        return null;
    }

我的getVal1()功能有什么问题吗?

2 个答案:

答案 0 :(得分:3)

您的问题是in_array搜索数组值,但您传递的是数组键。

如果符合以下条件,您可以使用isset和ternary简化代码:

function getVal1($name,$d){
    return isset($d[$name])?$d[$name]:null;
}

答案 1 :(得分:2)

你想:

if (isset($d[$name]))
    return $d[$name];
else
    return null;