从 Array Multi 访问数据
Access data from an Array Multi
我有一个数组 $testes,它接收两个数组 $variavel1 和 $variavel2。然后我设置:
$this->set('testes', $testes)
在视图中如何获取 $variavel1
和 $variavel2
的值?
我尝试了 $testes['$variavel1']['field']
,但我得到了未定义的索引 $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);
用图片解释我的问题:
我想你首先需要知道数组结构。将此添加到您的视图中,您将获得一个列表:
echo '<pre>';
print_r($testes);
echo '</pre>';
如果结果为空,问题可能出在您将 $variavel1 和 $variavel2 添加到变量 $testes 的地方...
编辑 2: 根据您的示例数组:
// Result should be 2034
echo $testes['0']['0']['VwEstPedOnline']['cd_seq_pedido'];
编辑 3 作为您在 post:
评论中的问题的答案
我还是不明白 $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
如果这不能回答您的问题,请举例说明(使用英文变量名)您想要得到的确切内容以及这两个表如何 connected/associated...
我有一个数组 $testes,它接收两个数组 $variavel1 和 $variavel2。然后我设置:
$this->set('testes', $testes)
在视图中如何获取 $variavel1
和 $variavel2
的值?
我尝试了 $testes['$variavel1']['field']
,但我得到了未定义的索引 $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);
用图片解释我的问题:
我想你首先需要知道数组结构。将此添加到您的视图中,您将获得一个列表:
echo '<pre>';
print_r($testes);
echo '</pre>';
如果结果为空,问题可能出在您将 $variavel1 和 $variavel2 添加到变量 $testes 的地方...
编辑 2: 根据您的示例数组:
// Result should be 2034
echo $testes['0']['0']['VwEstPedOnline']['cd_seq_pedido'];
编辑 3 作为您在 post:
评论中的问题的答案我还是不明白 $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
如果这不能回答您的问题,请举例说明(使用英文变量名)您想要得到的确切内容以及这两个表如何 connected/associated...