【问题标题】:How to get all keys out of associative array in php如何从php中的关联数组中获取所有键
【发布时间】:2013-02-17 12:49:28
【问题描述】:

我在 php 中有一个关联数组。当我在它上面做一个模具时,我会得到如下正确的值:

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?

【问题讨论】:

    标签: php associative-array


    【解决方案1】:
    $uniqueIds = array_keys($myAssociativeArray[0]);
    

    【讨论】:

    • 它给了我钥匙。但我想要 $myAssociativeArray 中所有元素的键
    • 我认为这不是合适的答案
    【解决方案2】:
        <?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);
        ?> 
    

    【讨论】:

      【解决方案3】:

      以下递归获取关联数组中的所有键

      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;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-04
        • 2021-03-16
        • 2015-08-05
        • 1970-01-01
        • 2012-10-19
        • 2020-05-26
        相关资源
        最近更新 更多