如何在PHP中获取关联数组的所有键

4

我在php中有一个关联数组。当我使用die命令时,我可以得到以下正确的值:

array(1) { [0]=> array(1) { [123]=> string(5) "Hello" }}

但是当我尝试将这个数组的键提取出来放入一个新的数组中时,无法获取它们:

$uniqueIds = array_keys($myAssociativeArray);
die(var_dump($uniqueIds));
int(0) array(1) { [0]=> int(0) } 

有人能告诉我这里我做错了什么吗?我想从我的关联数组中获取所有的键。为此,我参考了这个帖子:php: how to get associative array key from numeric index?

3个回答

11
$uniqueIds = array_keys($myAssociativeArray[0]);

1
它给了我一个键,但我想要$myAssociativeArray中所有元素的键。 - Arjit
1
我认为这不是适当的答案。 - Bob van Luijt

1
    <?php
    function multiarray_keys($ar) {

        foreach($ar as $k => $v) {
            $keys[] = $k;
            if (is_array($ar[$k]))
                $keys = array_merge($keys, multiarray_keys($ar[$k]));
        }
        return $keys;
    }
$result = multiarray_keys($myAssociativeArray);
var_dump($result);
    ?> 

0
以下是递归获取关联数组中所有键的代码:
function getArrayKeysFlat($array) {
    if(!isset($keys) || !is_array($keys)) {
        $keys = array();
    }
    foreach($array as $key => $value) {
        $keys[] = $key;
        if(is_array($value)) {
            $keys = array_merge($keys,getArrayKeysFlat($value));
        }
    }
    return $keys;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接