2012-01-02 59 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; 
     } 
    } 
}