无法在php中检索关联数组索引

时间:2014-06-02 00:07:56

标签: php arrays cakephp associative

我有一个如下所示的数组:

array(3) { [0]=> array(1) 
{ 
["habitacionales"]=> array(1) 
{ ["Azcapotzalco"]=> string(1) "3" } } 
[1]=> array(1) { ["comerciales"]=> array(0) { } } 
[2]=> array(1) { ["industriales"]=> array(0) { } }
}

我需要检查数组是否属于" habitacionales"或" comerciales"等等。但无论我做什么,我都会收到通知&# 34;未定义的索引:habitacionales"。有人可以指出如何访问该索引?

我正在使用cakephp,我在控制器中设置变量如下:

$zonasHab = $this->PropiedadesHabitacionale->BasicosPropiedadesHabitacionale->find('list', array('fields'=>array('Zona', 'propiedad_habitacional_id')));
然后我做了:

$this->set('Zonas', array_unique($linksZonas, SORT_REGULAR));

最后在我看来:

foreach ($Zonas as $zona) {
                        foreach($zona as $zone) {
                        foreach(array_flip($zone) as $link)   {
                        echo '<li   class="dropdownheader">'.$link;
                        }


                        var_dump($zone['habitacionales']);
                        }/*
                        if($zona['habitacionales']!=null) 
                        foreach(array_flip($zone) as $vinculo) {
                        echo '<li>'.$this->Html- >link($vinculo, array('controller'=>'propiedadeshabitacionales', 'action'=>'ver', $vinculo)).'</li>';
                        }
                        */
                        echo '</li>'; 
} 

只是要指出,奇怪的是,如果我在外var_dump($zona['habitacionales']);foreach,我得到正确的值:array(1){[&#34; Azcapotzalco&#34; ] =&GT;字符串(1)&#34; 3&#34;但是我仍然看到通知告诉我它是一个未定义的索引,我不能使用相同的语法($ zona [&#39; habitacionales&#39;]用于条件或其他任何东西。

1 个答案:

答案 0 :(得分:1)

假设$ Zonas是上面的那个数组,请尝试:

foreach($zona as $zone) {
                    foreach(array_flip($zone) as $link)   {
                    echo '<li   class="dropdownheader">'.$link;
                    }


                    var_dump($zone);

habitacionales是关键,如果你想访问它,那么使用:

foreach($zona as $key => $zone) {

$ key应该设置为habitacionales。