2014-12-18 2 views
0

Я работаю над бэкэнд с mongodb & php. Я сохранил содержимое сообщения в базе данных mongodb. Моего содержание базы данных MongoDB этоPHP-Mongodb: Как проверить вложенный массив существует или нет

.......some content......... 
    "content": "This is the test message", 
    "time_created": 1418813065, 
    "status": "read", 
    "agencyStatus": "read", 
    "reply": [ 
    { 
     "email": "[email protected]", 
     "name": "Accenture", 
     "content": "Thanks for your test message", 
     "time": 1418813145 
    } 
    ] 

В моей программе я retriving содержания ответа содержания сообщения & через цикл по каждому элементу, как вложен в качестве объекта внутри.

<?php echo $mongoMessage['content'];?> 
<?php foreach ($mongoMessage['reply'] as $mongoReply){ ?> 
<?php echo $mongoReply['content']; ?> 

Моя проблема в том, когда запись с ответом есть я retriving то это отображение в браузере, но запись без ответа, я retriving то это показывает мне заметить в браузере. Как избавиться от этой ситуации. Эта проблема, с которой я столкнулся с прошлой недели, плз помог мне, ребята ...

ответ

0

Если бы я мог вас правильно понять, вы получаете уведомление в браузере при попытке получить документ, в котором массив reply не имеет значения.

Чтобы избавиться от этого, вы должны сначала проверить, если массив reply не пуст. Как это -

<?php 

echo $mongoMessage['content']; 

if (!empty($mongoMessage['reply'])) { 

    foreach($mongoMessage['reply'] as $mongoReply) 
    { 
     echo $mongoReply['content'];  
    } 

} 

?> 

Надеется, что это помогает :-)

+0

вы правы. немного ошибка, которую я сделал в вопросе. элемент ответа будет присутствовать в базе данных только тогда, когда кандидат отвечает на сообщение, и в этот момент этот массив содержит ответ ... но есть и другие сообщения, у которых нет элемента ответа, поскольку кандидат не ответил до этого. – Shaggie

+0

Спасибо за ваш комментарий, у меня есть один способ проверить. Мне нужно использовать (isset ($ mongoMessage ['reply'])) в выражении if. Это хорошо работает. Спасибо за быстрый ответ :-) – Shaggie

+0

Да, функция isset() очень важна. Отлично, что вы можете найти его сами. –

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