Php foreach得到一个值

Php foreach得到一个值,php,foreach,echo,Php,Foreach,Echo,当我做var_dump($punkty); 我得到了这样的东西: array(1) { [0]=> array(4) { ["id"]=> string(2) "28" ["mapa"]=> string(97) "a:3s:3:"lat";s:17:"49.21103723075132";s:3:"lng";s:18:"22.330280542373657";s:4:"zoom";s:2:"17";}" ["miasto"]=>

当我做var_dump($punkty); 我得到了这样的东西:

array(1) 
{ 
[0]=> array(4) 
    { 
    ["id"]=> string(2) "28" 
    ["mapa"]=> string(97) "a:3s:3:"lat";s:17:"49.21103723075132";s:3:"lng";s:18:"22.330280542373657";s:4:"zoom";s:2:"17";}" 
    ["miasto"]=> string(5) "Cisna" 
    ["nazwa_obiektu"]=> string(44) "Cisna - noclegi u Mirosławy w Bieszczadach" 
    }
} 
当我这样做时:

foreach ($punkty['mapa'] as $item)
        {
        echo $item;
        }
我明白了

Invalid argument supplied for foreach() 

如何解决这个问题?

我认为您正在尝试这样做:

foreach($punkty as $item) {
    echo $item['mapa'];
}

mapa位于
$punkty[0]['mapa']
,而不是
$punkty['mapa']

,但是不要忘记验证您的$punkty不是空的,因为没有其他错误:-),对于示例:

if (isset($punkty )){
    foreach($punkty as $item){
        echo $item[0]['mapa'];
    }
}

$punkty['mapa']在您的示例中不是数组,而是只能将实现迭代器的数组或对象传递给foreach循环的字符串