2017-09-02 30 views
0

我有一個多維&嵌套數組象下面這樣:PHP陣列只能獲得那些元素/值,其鍵匹配特定圖案

Array 
(
    [_edit_lock] => Array 
     (
      [0] => 1504299434:6 
     ) 

    [_edit_last] => Array 
     (
      [0] => 6 
     ) 
    [additional_photos_0_gallery_image_1] => Array 
     (
      [0] => 77556 
     ) 
    [additional_photos_0_gallery_image_2] => Array 
     (
      [0] => 77567 
     ) 
    [additional_photos_0_gallery_image_3] => Array 
     (
      [0] => 73768 
     ) 
    .... 
) 

現在我需要得到僅給定陣列的那些元素(在在不改變當前陣列的單獨陣列),其密鑰匹配像低於特定圖案:

additional_photos_[any_number]_gallery_image_[any_number] 

我怎樣才能使用的陣列的功能之一,並避免foreach環路?

+0

https://stackoverflow.com/questions/12482388/php-finding-keys-in-an-array-that-match-a-pattern的可能的複製 – Nima

回答

1

只需使用array_filter和preg_match。

return array_filter($data, function($key) { 
    return preg_match('~^additional_photos_[0-9]+_gallery_image_[0-9]+$~', $key); 
}, ARRAY_FILTER_USE_KEY);