2010-12-27 23 views
0

への私は、配列の中に、このforeach ($produtos as $produto)ループのすべての反復を保存するために$servicoをしたいと思います:保存foreachループの結果配列

しかし、私は最後に出現のID、名前とドメインを取得しています。

$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 '</pre>'; 
      return $servico; 
     } 

私はここで少し助けてもらえますか? :D

おかげで、 MEM

+0

ありがとうございました。 ;) – MEM

答えて

1

あなたは、ID、名前、およびドメインキーたびに書き換えています。後の進路$groupIDを生成し、代わりにこれを行う:

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

これは、あなたが望む新しいものとそれを埋める、配列に新しいエントリを作成します。実際に一時的な配列を作成することなく、一時配列を作成する他の例と機能的に同じです。

0

要素を追加しないで、$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 
0

あなたのスクリプトがすべての繰り返しだけでなく、最後の1を保存したい場合は、これに似た何かをするスクリプトのforeachのネストされたループを変更したいと思う:

このような何かをやってみてください
foreach ($resposta->products as $produtos) 
{ 
    foreach ($produtos as $produto) 
    { 

     if (!empty($produto->domain)) 
     { 
      // Create a temporary array 
      $newServico = array(); 

      $newServico['id'] = $produto->id; 
      $newServico['name'] = $produto->name; 
      $newServico['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 
      $newServico['gid'] = $groupId; 

      // Append the new array to the $servico main array 
      $servico[] = $newServico; 
      unset($newServico); 
     } 
    } 
} 

あなたの質問にお答えしますようお願いいたします:)