2012-01-02 8 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($ array))'。 – Kenaniah

+0

私がしようとしていますが、私が得た 1-TITLE1 2-TITLE2 3-TITLE3 4-TITLE4 –

+0

@Kenaniah @Robin array_keysが唯一の親キーを返し、彼はなどのタイトルを取得したい場合、彼はarray_keys –

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

ありがとうございました... –

+0

心配なし。あなたができるならば答えを受け入れる!ありがとう – Savid

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