附加到多维数组PHP的问题

时间:2011-12-26 15:30:49

标签: php arrays multidimensional-array

我有:

$overr=array();

$overr[]=array("selector"=>array('vi'=>mysql_num_rows($myquery),'pes'=>
$pess,'prp'=>mysql_num_rows($my_3_query),'em_t'=>$u_h));//this is in a loop

如您所见,我正在尝试追加到数组($overr)并在其中添加另一个数组。

问题是,它在$overr内添加了2个数组,所以当我尝试使用选择键名来回显$overr内的某个数组时,它不起作用,因为键名(选择器)在另一个数组内......如果这有意义的话。那么这是我回忆时得到的结果:

echo json_encode ($overr['selector']);//I know i shouldn't be using json_enocde for echoing but its only for temporary testing.

结果:

null

但是当我这样做时:

echo json_encode ($overr[9]);

它工作正常,并打印出第9个数组..

我尝试改变我追加数组的方式:

$overr[]="selector"=>array('vi'=>mysql_num_rows($myquery),'pes'=>
    $pess,'prp'=>mysql_num_rows($my_3_query),'em_t'=>$u_h);//notice i don't have array at the beginning anymore.

这会返回语法错误。

我需要能够使用选择器作为键。

我没有正确附加到阵列吗?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

尝试

var_dump($overr[$arrayNumber]['selector']);

答案 1 :(得分:0)

我不确定这是否符合您的期望,但在您的第一种情况下,可以使用selector作为关键。例如,获取第一个selector

$firstSelector = $overr[0]['selector'];

如果您更喜欢以其他方式书写,例如像:

$firstSelect = $overr['selector'][0];

您需要更改构建$overr数组的方式。

//this is in a loop
$overr['selector'][] = array(
    'vi' => mysql_num_rows($myquery),
    'pes' => $pess,
    'prp' => mysql_num_rows($my_3_query)
    'em_t'=>$u_h
);

答案 2 :(得分:0)

使用[]括号追加到数组以数字形式附加。如果您的数组有一个现有条目,则追加将在索引1处添加。这就是$overr[9]有效的原因。

您的循环会导致$overr看起来像

$overr => array(  
    0 => array("selector" => array(...),
    1 => array("selector" => array(...),
    ...
);

换句话说,“selector”键隐藏在另一个数组中,因此无法使用$overr['selector']直接访问,而$overr[n]['selector'] n是一些索引,具体取决于您的循环长度

如果要添加到selector键数组,可以在循环中附加,如果已经设置了selector键:

$overr['selector'][] = array(...)

如果这不能解答您的问题,请发布您要实现的目标示例。