2014-09-27 66 views
1

我想要做的是從陣列中的鑰匙中刪除-破折號,然後用空格代替-重建它。爆炸我的陣列,從鑰匙中刪除破折號,然後將它重新聚集在一起

樣品陣列

$pages = array(

    'Administrator' => array(
     'network-administrator' => array('title' => 'Network '.$li_1, 'description' => 'Network '.$li_1.' '.$temp_content, 'post' => '<p>Network '.$li_1.' '.$temp_content.'.</p>'), 
     'database administrator' => array('title' => 'Database '.$li_1, 'description' => 'Database '.$li_1.' '.$temp_content, 'post' => '<p>Database '.$li_1.' '.$temp_content.'.</p>'), 
    ), 

    'Analyst' => array(
     'business systems analyst' => array('title' => 'Business Systems '.$li_2, 'description' => 'Business Systems '.$li_2.' '.$temp_content, 'post' => '<p>Business Systems '.$li_2.' '.$temp_content.'.</p>'), 
     'data-analyst' => array('title' => 'Data '.$li_2, 'description' => 'Data '.$li_2.' '.$temp_content, 'post' => '<p>Data '.$li_2.' '.$temp_content.'.</p>'), 
    ), 

); 

正如你可以看到有一些按鍵的破折號-。有些已經有空間。那些有破折號的需要用空格替換。

我知道這聽起來很奇怪,「爲什麼不用空格硬編碼它們」對不對?那麼我需要兩個數組來檢查我的PHP腳本中的條件。

我不知道如何去爆炸陣列,刪除破折號,然後把它內爆。

我認爲這將是這樣的。

explode('-', $pages[ucfirst($occupation)]; 

然後破滅

implode(' ', $pages[ucfirst($occupation)]); 

但我知道頂層陣列內不會得到所有的孩子陣列。

不知道如何去做這件事。

幫助表示讚賞!

回答

1

好,因爲你不能引用鍵,你可以只將它們轉移到一個新的,然後只是一個簡單的替換在琴鍵上(提供的結構是固定的):

$new_pages = array(); 
foreach($pages as $key => $values) { 
    foreach($values as $k => $v) { 
     $k = str_replace('-', ' ', $k); 
     $new_pages[$key][$k] = $v; 
    } 
} 
+0

你是什麼意思,如果結構是固定的? – Mike 2014-09-27 06:50:06

+0

@Mike我的意思是,如果它的尺寸更大,如果尺寸(如這個結構)將被修復,那麼它的另一個場景,但無論如何,我很高興這有幫助 – Ghost 2014-09-27 08:36:38

+0

是的尺寸不會改變。我並不認爲要在陣列中深入另一個維度。 – Mike 2014-09-27 08:38:52