2012-01-02 26 views
0

如果有一個數組:如何獲得數組php的深層關鍵?

Array 
(
    [1-title1] => Array 
     (
      [0] => title = title erer 
      [1] => 1-title1 
      [2] => content = content 1 
     ) 

    [2-title2] => Array 
     (
      [0] => title = title dffgfghfdg 
      [1] => 2-title2 
      [2] => content = content 2 
     ) 

,我想數組:

Array 
(
    [1-title1] => Array 
     (
      [title] =>title erer 
      [1] =>title1 
      [content] =>content 1 
     ) 

    [2-title2] => Array 
     (
      [title] =>title dffgfghfdg 
      [2] => title2 
      [content] =>content 2 
     ) 

我應該怎麼辦?

回答

0

試試這個

foreach($array as $ky=>$val) { 
    echo $ky; 
    var_dump(array_keys($val)); 
} 
+0

爲什麼迭代? '的var_dump(array_keys($陣列))'。 – Kenaniah 2012-01-02 05:05:11

+0

我正在嘗試,但我得到了 1 TITLE1 2 - 標題2 3 TITLE3 4 TITLE4 – 2012-01-02 05:06:35

+0

@Kenaniah因爲array_keys只返回父鍵,如果想拿到冠軍等,他可使用array_keys – 2012-01-02 05:16:54

0
foreach($array as &$title){ 
    $newTitle = array(); 
    $titleName = explode(' = ', $title[0] , 2); 
    $newTitle['title'] = end($titleName); 
    $titleNum = explode('-', $title[1] , 2); 
    $newTitle[$titleNum[0]] = $titleNum[1]; 
    $titleContent = explode(' = ', $title[2] , 2); 
    $newTitle['content'] = end($titleContent); 
    $title = $newTitle; 
} 
+0

謝謝..正在工作...... – 2012-01-02 06:20:57

+0

不用擔心。如果可以,請接受答案!謝謝 – Savid 2012-01-02 06:24:05

1

沒有引用,沒有隱含的關鍵名稱的解決方案。

foreach ($array as $key => $innerArray) { 
    foreach ($innerArray as $innerKey => $value) { 
     if (false !== strpos($value, ' = ')) { 
      unset($array[$key][$innerKey]); 
      list($innerKey, $value) = explode(' = ', $value, 2); 
      $array[$key][$innerKey] = $value; 
     } 
    } 
} 
相關問題