从Array Multi访问数据

时间:2015-05-06 16:38:00

标签: php arrays cakephp

我有一个Array $ testes,它接收了两个数组$ variavel1和$ variavel2。然后我设置:

$this->set('testes', $testes)

查看我如何从$variavel1$variavel2获取值?

我试过了$testes['$variavel1']['field'],但我得到了Undefined Index $ variavel1

实际例子:

Array ( [0] => Array ( [ProcuraProdutoPedOnline] => Array ( [cd_familia] => 3 [ds_familia] => ACESSORIOS ) ) [1] => Array ( [ProcuraProdutoPedOnline] => Array ( [cd_familia] => 1 [ds_familia] => CALCADOS ) )

Array ( [0] => Array ( [VwEstPedOnline] => Array ( [cd_seq_pedido] => 2034 ) ) [1] => Array ( [VwEstPedOnline] => Array ( [cd_seq_pedido] => 2038 ) )

我正在设置$testes$testes = array($variavel1, $variavel2);

解释我的问题的图片: enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:3)

我认为你首先需要知道数组结构。将其添加到您的视图中,您将获得一个列表:

echo '<pre>';
print_r($testes);
echo '</pre>';

如果结果为空,问题可能出在将$ variavel1和$ variavel2添加到变量$ testes ...

的地方

编辑2:通过示例数组:

// Result should be 2034
echo $testes['0']['0']['VwEstPedOnline']['cd_seq_pedido'];

编辑3 在本帖子的评论中回答您的问题:

我仍然不明白$ variavel1和$ variavel2是如何关联的。如果没有连接,则无需将它们合并到一个数组中。你可以在另一个foreach中使用一个foreach:

在您的控制器中:

$familias = $this->ProcuraProdutoPedOnline->find('all', array(
  'fields' => array('cd_familia', 'ds_familia'),
  'order' => 'cd_familia'));
$this->set('familias', $familias);

$cdSeqPeds = $this->VwEstPedOnline->find('all', array(
  'fields' => 'cd_seq_pedido',
  'order' => 'cd_seq_pedido'));
$this->set('cdSeqPeds', $cdSeqPeds);

在你看来:

foreach ( $familias as $var1 ) {
  echo '<p>'.$var1['ProcuraProdutoPedOnline']['ds_familia'].':</p>';
  echo '<ul>';
  foreach ( $cdSeqPeds as $var2 ) {
    echo '<li>'.$var2['VwEstPedOnline']['cd_seq_pedido'].'</li>';
  }
  echo '</ul>';
}

结果应该是这样的:

ACESSORIOS:
· 2034
· 2038
CALCADOS:
· 2034
· 2038

如果这不能解答您的问题,请举例说明(带有英文变量名称)您想要获得的内容以及这两个表如何连接/关联...