Получение информации из массива - PullRequest
0 голосов
/ 05 мая 2011
<pre class="cake-debug">
Array
(
[0] => Array
    (
        [Qnote] => Array
            (
                [id] => 67
                [subject] => Call Closing
                [body] => Gave Information

                [user_id] => 39
            )

        [Step] => Array
            (
                [0] => Array
                    (
                        [id] => 2
                        [user_id] => 39
                        [qnote_id] => 67
                        [type] => a
                        [body] => This is a text
                    )

                [1] => Array
                    (
                        [id] => 3
                        [user_id] => 39
                        [qnote_id] => 67
                        [type] => a
                        [body] => This is userid 39

                    )



            )

    )

)

Привет, я пытаюсь получить данные из этого массива

<?php foreach($data as $qnote): ?> 
<?php echo $qnote['Qnote']['id']; ?> // Works
<?php echo $qnote['Qnote']['body']; ?> //Works
<?php echo $qnote['Step']['body']; ?> // Doesnt Work ????
<?php endforeach; ?>

как правильно получить данные шага. Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении.

Код контроллера:

function view($id = null) {         
$this->Qnote->id = $id;
$userID = $this->Authsome->get('id');       

$this->paginate = array(

'conditions' => array(
'Qnote.id LIKE' => $id), 
   );
$data = $this->paginate('Qnote');
$this->set('data', $data);
}

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

$qnote['Step'] также является многомерным массивом, так что вам нужно будет пройти через него тоже:

<?php foreach ($data as $qnote) : ?>
    <p>Id: <?php echo $qnote['Qnote']['id']; ?></p>
    <p>Body: <?php echo $qnote['Qnote']['body']; ?></p>
    <p>
        Steps:
        <ul>
            <?php foreach ($qnote['Step'] as $step) : ?>
                <li><?php echo $step['body']; ?></li>
            <?php endforeach; ?>
        </ul>
    </p>
<?php endforeach; ?>
0 голосов
/ 05 мая 2011

Запишите:

<?php echo $qnote['Step']['body']; ?> // Doesnt Work ????

, где $qnote['Step']:

[Step] => Array
(
    [0] => Array
    (
        [id] => 2
        [user_id] => 39
        [qnote_id] => 67
        [type] => a
        [body] => This is a text
     )
    [1] => Array
    (
        [id] => 3
        [user_id] => 39
        [qnote_id] => 67
        [type] => a
        [body] => This is userid 39
    )
)

Нет $qnote['Step']['body'].Хотя есть $qnote['Step'][1]['body'].

Если вы хотите получить доступ ко ВСЕМ ['body'] s в $qnote['Step'], используйте foreach:

foreach($qnote['Step'] as $step)
{
    echo $step['body'];
}

edit: При втором размышлении также обратите вниманиеэтот 'Шаг' НЕ является членом 'Qnote' (и, вероятно, не $ qnote.) Вы можете сначала обратиться к этому.

...