2016-04-20 5 views
0

Вот мой массив;многомерный массив unset не работает

var_dump($contact['poco']['tags']); 

array (size=5) 
    0 => 
    array (size=3) 
     'tag' => string 'boy' (length=3) 
     'color' => string '#332409' (length=7) 
     'id' => string '57160583b0e6df19598b4568' (length=24) 
    1 => 
    array (size=3) 
     'tag' => string 'girl' (length=4) 
     'color' => string '#2e2f15' (length=7) 
     'id' => string '57160589b0e6df1d598b4567' (length=24) 
    2 => 
    array (size=3) 
     'tag' => string 'zebra' (length=5) 
     'color' => string '#646604' (length=7) 
     'id' => string '57160592b0e6df7b588b4567' (length=24) 
    3 => 
    array (size=3) 
     'tag' => string 'potential duplicate' (length=19) 
     'color' => string '#f00' (length=4) 
     'id' => string '57161d9db0e6df0f5c8b456b' (length=24) 
    4 => 
    array (size=3) 
     'tag' => string 'no phone numbers' (length=16) 
     'color' => string '#5833d2' (length=7) 
     'id' => string '5716059ab0e6df7b588b456d' (length=24) 

Я просто хочу удалить/удалить тот, у которого есть следующие теги;

$smartTags = ['potential duplicate', 'no emails', 'no phone numbers']; 

Таким образом, я получаю;

array (size=3) 
    0 => 
    array (size=3) 
     'tag' => string 'boy' (length=3) 
     'color' => string '#332409' (length=7) 
     'id' => string '57160583b0e6df19598b4568' (length=24) 
    1 => 
    array (size=3) 
     'tag' => string 'girl' (length=4) 
     'color' => string '#2e2f15' (length=7) 
     'id' => string '57160589b0e6df1d598b4567' (length=24) 
    2 => 
    array (size=3) 
     'tag' => string 'zebra' (length=5) 
     'color' => string '#646604' (length=7) 
     'id' => string '57160592b0e6df7b588b4567' (length=24) 

Я пробовал;

$smartTags = ['potential duplicate', 'no emails', 'no phone numbers']; 

foreach ($contact['poco']['tags'] as $key => $tag) { 

    if (in_array($tag, $smartTags)) { 
     unset($contact['poco']['tags'][$key]); 
    } 
} 

Но это ничего не значит. У меня могут возникнуть проблемы из-за многомерности этого массива ...

Каков правильный синтаксис?

+1

'если (in_array ($ тег [ 'тег'], $ SmartTags)) {' – splash58

+0

ваше состояние не так .... –

+0

@ splash58 - спасибо. оно работает. иногда просто вторая пара глаз помогает – mikelovelyuk

ответ

0

Попробуйте это.

foreach ($contact['poco']['tags'] as $key => $tag) {   
    if (in_array($tag['tag'], $smartTags)) { 
     unset($contact['poco']['tags'][$key]); 
    }  
} 
Смежные вопросы