Цикл по массивам для создания нового массива данных

0

У меня есть раздел уведомлений на моем сайте, и я получаю данные из своей таблицы. Могут быть дочерние уведомления, назначенные их родителям, поэтому у меня есть parent_id в таблице, как показано ниже:

Изображение 174551

Ниже представлен массив, который я получаю

Array
    (
    [0] => stdClass Object
        (
            [user_title] => Mr
            [user_firstname] => Richard
            [user_lastname] => Knight-Gregson
            [assignee_title] => Mr
            [assignee_firstname] => Richard
            [assignee_lastname] => Knight-Gregson
            [created] => 2015-03-26 11:40:20
            [id] => 61
            [user_id] => 88
            [description] => message for user rkg uid 88
            [assignee] => 88
            [parent_id] => 
            [cc] => 
            [bcc] => 
            [status] => 0
        )

[1] => stdClass Object
    (
        [user_title] => Mr
        [user_firstname] => Richard
        [user_lastname] => Knight-Gregson
        [assignee_title] => Mr
        [assignee_firstname] => Richard
        [assignee_lastname] => Knight-Gregson
        [created] => 2015-03-26 12:45:47
        [id] => 71
        [user_id] => 88
        [description] => This is child
        [assignee] => 88
        [parent_id] => 61
        [cc] => 
        [bcc] => 
        [status] => 0
    )

[2] => stdClass Object
    (
        [user_title] => Mr
        [user_firstname] => Ted
        [user_lastname] => Chiles
        [assignee_title] => Mr
        [assignee_firstname] => Richard
        [assignee_lastname] => Knight-Gregson
        [created] => 2015-03-27 10:11:56
        [id] => 207
        [user_id] => 47
        [description] => cc 88
        [assignee] => 88
        [parent_id] => 
        [cc] => 88
        [bcc] => 112
        [status] => 0
    )

[3] => stdClass Object
    (
        [user_title] => Mr
        [user_firstname] => Richard
        [user_lastname] => Knight-Gregson
        [assignee_title] => Mr
        [assignee_firstname] => Richard
        [assignee_lastname] => Knight-Gregson
        [created] => 2015-03-27 10:17:31
        [id] => 209
        [user_id] => 88
        [description] => sadfasdfasd
        [assignee] => 88
        [parent_id] => 
        [cc] => 88
        [bcc] => 0
        [status] => 0
    )

 )

Вот код, который у меня есть на данный момент, чтобы перебрать массив, что мне нужно добавить к этому, чтобы получить все элементы, которые имеют parent_id, а затем отображать их под их репрессорным родителем в списке...

<table class="notifications-table" border="1">
        <tr>
            <th>S No.</th><th>Date</th><th>Employee</th><th id="details">Details</th><th>Assignee</th><th>Action</th>
        </tr>

    <?php foreach($notifications as $row){ ?>

        <?php foreach($row as $k){


        } ?>

        <tr <?php if($row->status){ echo "class='resolved'"; } ?> id="row-<?=$row->id;?>">

            <td><?=$row->user_id?></td><td><?=date('d M, H:i',strtotime($row->created));?></td>

            <td><?=$row->user_title.' '.$row->user_firstname.' '.$row->user_lastname;?></td>

            <td>
                row id is : <?=$row->id.' == '.$row->parent_id; ?>
                <?php //echo $row->id.' == '.$row->parent_id; ?>
                <?=$row->description; ?><span data-parent-id="<?=$row->id;?>" data-user-id="<?=$row->user_id;?>" id="add_not" data-featherlight="#send_child_message" data-id="add_child_notification" class="glyphicon glyphicon-plus"></span>

            </td>

            <td><?=$row->assignee_title.' '.$row->assignee_firstname.' '.$row->assignee_lastname;?></td>

            <td><input <?php if($row->status){ echo "disabled"; } ?> value="<?=$row->id;?>" data-action="not" type="checkbox" /></td>

        </tr>

    <?php } ?>

</table>

Я пробовал несколько вещей, но просто не могу получить то, что хочу! С уважением!

Теги:
arrays

1 ответ

0

Изображение 174551

Код, который у вас есть, кажется правильным. Я смог взять большую часть вашей структуры и перебрать ее и получить то, что вы видите на скриншоте:

Я смог увидеть 2 строки информации, потому что я использовал только 2 элемента (не все).

Хорошо, теперь я вижу то, что вы пытаетесь сделать. Вы хотите отобразить сведения о родительском элементе id, который в этом примере будет моей "строкой 2", поскольку идентификатор строки 71 является "дочерним элементом" идентификатора строки 61.

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

Перед тем, как закрыть td "Подробности", вы можете добавить...

<?php foreach($notifications as $row2){ ?>
  <?php if ($row2->id == $row->parent_id) : ?> PARENT DESC: <?= $row2->description; ?><?php endif; ?> 
<?php } ?>

Который теперь должен позволить вам использовать некоторые значения родительских свойств. Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню