2017-09-13 53 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謝謝你試圖幫助,但我更快(在搜索網絡:)) –