2017-09-13 96 views
0

我有类似的问题,这是这里的所有键:solved Problem如何得到这个多维数组

但我想回报作为在1这个演示阵列的最终结果得到这样一个数组。

非常感谢!

返回数组我想获得:

[0] => "0.name " 
    [1] => "0.id " 
    [2] => "0.phone " 
    [3] => "0.Base.city " 
    [4] => "0.EBase.city " 
    [5] => "0.Qty " 
    [6] => "1.name " 
    [7] => "1.id " 
    [8] => "1.phone " 
    [9] => "1.Base.city " 
    [10]=> "1.EBase.city " 
    [11]=> "1.Qty " 

我已经试过这样:但是不起作用:

 function array_flat(array $myarr)    
     {    
      $myline = "";    
      foreach ($myarr as $key => $value)    
       {    
       if ($myline == ""){$myline=sprintf("%s",$myarr[$key]);}    
       else {$myline=sprintf("%s%s",$myline,$myarr[$key]);}    
       }    
      return array($myline);    
     }    

     function array_keys_multi(array $array)    
     {    
      $keys = array();    

      foreach ($array as $key => $value) {    
      $keys[] = $key;    

      if (is_array($value)) {    
       $keys = array_merge($keys, array_keys_multi($value));    
      }    
       else {    
        $keys = array_flat($keys);    
       }    

      }    

      return $keys;    
     }    

而且我发现这一点:也许它可以帮助解决我的请求: get all path of an array

+0

什么你试过吗? –

+0

array_keys()?http://php.net/manual/fr/function.array-keys.php – Pauloscorps

+0

你的意思是你想要你的数组的键1的所有键? –

回答

2

是这个环节做了什么,我想: Solution

   function getKeyPaths(array $tree, $glue = '_')      
      {                 
       $paths = array();            
       foreach ($tree as $key => &$mixed) {       
        if (is_array($mixed)) {         
         $results = getKeyPaths($mixed, $glue);     
         foreach ($results as $k => &$v) {      
          $paths[$key . $glue . $k] = $v;     
         }              
         unset($results);          
        } else {             
         $paths[$key] = $mixed;         
        }               
       }                

       return $paths;             
      }                 

通过调用它:

 print_r(getKeyPaths($jsonquotesum)); 
+0

Hi @Walter,尽管链接可能对您有所帮助,但在此发布可使您在此工作的解决方案(代码)将在未来帮助其他人。特别是因为链接包含多个代码块;) – Nukeface

+0

@Nukeface谢谢你试图帮助,但我更快(在搜索网络:)) –