Сохранить результаты цикла foreach в массив - PullRequest
0 голосов
/ 27 декабря 2010

Я бы хотел $servico сохранить все итерации этого цикла foreach ($produtos as $produto) в массиве:

Однако я получаю только идентификатор, имя и домен последнего вхождения.

<code>$servico = array();

        foreach ($resposta->products as $produtos)
        {


            foreach ($produtos as $produto)
            {

                if (!empty($produto->domain))
                {
                    $servico['id'] = $produto->id;
                    $servico['name'] = $produto->name;
                    $servico['domain'] = $produto->domain;

                    //seta o pid do produto
                    $servicoVo->setPid($produto->pid);

                    //vai buscar o gid do produto:
                    $groupId = $servicoDao->grupoServico($servicoVo);

                    //adiciona o group id ao array
                    $servico['gid'] = $groupId;
                }
            }
        }


        //devolve o array
        if (!empty($servico)) 
        {
            //echo '<pre>';
            //var_dump($servico);
            //echo '
';вернуть $ servico;}

Можно мне здесь немного помочь?: D

Спасибо, MEM

Ответы [ 3 ]

1 голос
/ 27 декабря 2010

Вы каждый раз переписываете ключи id, name и domain. Сделайте это вместо того, чтобы, конечно, после генерации $groupID:

$servicio[] = array('id'     => $produto->id
                   ,'name'   => $produto->name
                   ,'domain' => $produto->domain
                   ,'gid'    => $groupId);

Это создает новую запись в массиве, наполняя ее новым материалом, который вы хотите. Функционально идентичен другим примерам создания временного массива без необходимости фактически создавать временный массив.

0 голосов
/ 27 декабря 2010

Если вы хотите, чтобы ваш сценарий сохранял все итерации, а не только последнюю, вам нужно изменить вложенный цикл foreach вашего сценария так, чтобы он делал что-то похожее на это:вопрос:)

0 голосов
/ 27 декабря 2010

Вы продолжаете изменять элементы $servico, не добавляя к нему элементы.Попробуйте сделать что-то вроде этого:

$newItem = Array(); // create the new item we want to add to $servico

// ...populate it like you have been...
$newItem ['id'] = $produto->id;
$newItem ['name'] = $produto->name;
$newItem ['domain'] = $produto->domain;

//seta o pid do produto
$servicoVo->setPid($produto->pid);

//vai buscar o gid do produto:
$groupId = $servicoDao->grupoServico($servicoVo);

//adiciona o group id ao array
$newItem ['gid'] = $groupId;

$servico[] = $newItem; // <-- note this change here, we add the new item to the array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...