2013-11-15 78 views
3

我想除了DTSTART &從陣列中去除一切DTEND選擇某些元素從一個數組

所以我想轉換此:

Array 
(
[0] => Array 
    (
     [DTEND] => 20130417 
     [DTSTART] => 20130403 
     [UID] => [email protected] 
     [DESCRIPTION] => CHECKIN: 04/08/2012\nCHECKOUT: 04/17/2012\nNIGHTS: 14\nPHO 
     [NE] =>  +1 504 914 0591\nEMAIL: [email protected]\nPROPERTY: Breathtaking views over the lake\n 
     [SUMMARY] => Name here (ED5ASC) 
     [LOCATION] => Breathtaking views over the lake 
    ) 

[1] => Array 
    (
     [DTEND] => 20131231 
     [DTSTART] => 20131226 
     [UID] => [email protected] 
     [DESCRIPTION] => CHECKIN: 12/26/2013\nCHECKOUT: 12/31/2013\nNIGHTS: 5\nPHON 
     [E] =>  +44 7843 387767\nEMAIL: [email protected]\nPROPERTY: Breathtaking views over the lake\n 
     [SUMMARY] => Name here (JrtyKW9) 
     [LOCATION] => Breathtaking views over the lake 
    ) 

[2] => Array 
    (
     [DTEND] => 20121123 
     [DTSTART] => 20121117 
     [UID] => [email protected] 
     [SUMMARY] => Not available 
    ) 

看像這樣:

Array 
(
[0] => Array 
    (
     [DTEND] => 20130417 
     [DTSTART] => 20130403 
    ) 

[1] => Array 
    (
     [DTEND] => 20131231 
     [DTSTART] => 20131226 
    ) 
) 

[2] => Array 
    (
     [DTEND] => 20121123 
     [DTSTART] => 20121117 
    ) 
) 

我已經搜索了一些選項,但我需要爲了能夠選擇這兩個元素並放棄其餘的元素,我將使用具有不同值的不同數組,因此不能僅指定要移除的元素,因爲它們會有所不同。

回答

3
$newArray = array(); 
foreach ($array as $k => $v) { 
    $newArray[$k]['DTEND'] = $v['DTEND']; 
    $newArray[$k]['DTSTART'] = $v['DTSTART']; 
} 

編輯:選擇,因爲你提到想用數組迭代函數來做到這一點..

array_walk($array, function(&$v){ 
    $v = array('DTEND' => $v['DTEND'],'DTSTART' => $v['DTSTART']); 
}); 

EDIT2:因爲我沒有生活...但另一種選擇...

array_walk($array, function(&$v){ 
    $v = array_intersect_key($v, array_flip(preg_grep('~^DT(END|START)$~', array_keys($v)))); 
}); 

我不知道哪一個是最快/最有效的,但我的錢是親在第二場比賽中表現平平。

+0

非常感謝,我正在嘗試像數組過濾器和數組搜索的東西,但你的答案就是這麼簡單:) – happypete

1

你可以從每個元素

unset($array[0]['UID']); 
unset($array[0]['DESCRIPTION'); 
//... 
unset($array[999]['UID']); 
unset($array[999]['DESCRIPTION'); 

在這種情況下刪除鍵/值哈希它的速度更快,使一個新的陣列,像蠟筆猛烈建議。