2016-04-18 4 views
0

я должен удалить некоторые объекты внутри моего действия перед отправкой данных в зренияPHP удалить объект внутри массива

Данные являются чем-то вроде этого:

'items' => [ 
     (int) 0 => object(App\Model\Entity\Propriete) { 

     'id_propriete' => (int) 1, 
     // and other fields 
     'user' => object(App\Model\Entity\User) { 

      'id' => '1459436853', 
     //and other fields 
     }, 
     'favorites' => [ 
      (int) 0 => object(App\Model\Entity\Favorite) { 

       'id' => (int) 24, 
       'propriete_id' => (int) 1, 
       'user_id' => '1459438630', 
       'created' => object(Cake\I18n\FrozenDate) { 

        'time' => '2016-04-15T00:00:00+00:00', 
        'timezone' => 'UTC', 
        'fixedNowTime' => false 

       }, 
       'modified' => object(Cake\I18n\FrozenDate) { 

        'time' => '2016-04-15T00:00:00+00:00', 
        'timezone' => 'UTC', 
        'fixedNowTime' => false 

       }, 

      }, 
      (int) 1 => object(App\Model\Entity\Favorite) { 

       'id' => (int) 27, 
       'propriete_id' => (int) 1, 
       'user_id' => '1459436853', 
      , 
       'modified' => object(Cake\I18n\FrozenDate) { 

        'time' => '2016-04-18T00:00:00+00:00', 
        'timezone' => 'UTC', 
        'fixedNowTime' => false 

       }, 
       '[new]' => false, 
       '[accessible]' => [ 
        '*' => true 
       ], 
       '[dirty]' => [], 
       '[original]' => [], 
       '[virtual]' => [], 
       '[errors]' => [], 
       '[invalid]' => [], 
       '[repository]' => 'Favorites' 

      }, 
      (int) 2 => object(App\Model\Entity\Favorite) { 

       'id' => (int) 28, 
       'propriete_id' => (int) 1, 
       'user_id' => 'ae0dce23-584b-4907-b32e-1655d5e69e55', 


      } 
     ], 
    } 
] 

избранное является array Я хочу удалить какой-либо конкретный объект внутри этого массива в соответствии с условием. Итак, что я пытался сделать:

foreach($proprietes as $ad){ 
     foreach($ad->favorites as $favori) 
      if($favori->user_id !==$user['id']){ 
       unset($favori); 
      } 
    } 

Butit не работает, может ли кто-нибудь помочь?

+0

Соберите элементы, которые вы не хотите удалять в новый массив. На данный момент вы переписываете исходный список –

ответ

1
foreach($proprietes as $ad){ 
     foreach($ad->favorites as $key=>$favori) 
      if($favori->user_id !==$user['id']){ 
       unset($ad->favorites[$key]); 
      } 
    } 

Вам необходимо напрямую обратиться к объекту.

+0

Чем вы помогаете мне сделать ошибку в сообщении, почему я получаю downvote? –

+1

Люди вниз, здесь просто для удовольствия. IDK почему, мне казалось, это был разумный вопрос. Дал вам +1. Спасибо за проверку. –

+0

спасибо за решение моей проблемы =) –

Смежные вопросы