Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取数组的键";“价值”;在函数中使用_Php_Arrays - Fatal编程技术网

Php 获取数组的键";“价值”;在函数中使用

Php 获取数组的键";“价值”;在函数中使用,php,arrays,Php,Arrays,我定义了一个数组: $flatdata["body_font-family"] = "Arial"; 我想在函数中使用该数组值: function display_name($input) { showmethekeyofthearrayvalue($input); // how can I get the key name here? } echo display_name($flatdata["body_font-family"]); 因此,输出为: body_font-fam

我定义了一个数组:

$flatdata["body_font-family"] = "Arial";
我想在函数中使用该数组值:

function display_name($input) {
    showmethekeyofthearrayvalue($input); // how can I get the key name here?
}

echo display_name($flatdata["body_font-family"]);
因此,输出为:

body_font-family
您可以这样尝试:

key($arr);
这将返回密钥名

key()返回当前数组位置的索引元素

或者您可以尝试使用

这个怎么样

function display_key($array, $val) {
    while($array_pos = current($array)) {
        if($array_pos == $val) {
            return key($array);
        }
    }
}

echo display_key($flatdata, $flatdata["body_font-family"]);

我假设在您的示例中,
displaykey
应该是
display\u name


如果是这样,您将无法通过传入数组元素(如
$flatdata[“body\u font-family”]
)来返回键,因为在这种情况下,您只传入一个特定的字符串,即
Arial
,因此函数没有关于键的任何信息。

PHP警告:key()希望参数1是数组,字符串givenSame问题和以前一样。现在工作完美,没想到会有解决方案。谢谢没问题:)我意外地返回了
key($val)
而不是
key($array)
首先您可能是对的。我还以为有某种PHP函数我不知道,但唉。@Taapo另一种想法是,在您的示例中,调用相当于
display\u name('Arial')
function display_key($array, $val) {
    while($array_pos = current($array)) {
        if($array_pos == $val) {
            return key($array);
        }
    }
}

echo display_key($flatdata, $flatdata["body_font-family"]);