Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加到数组值_Php_Sql_Arrays - Fatal编程技术网

Php 添加到数组值

Php 添加到数组值,php,sql,arrays,Php,Sql,Arrays,我从mysql数据中获取: $starcik_o = mysql_query("select id, mapa, miasto, nazwa_obiektu from oferty where id = 28"); while($data = mysql_fetch_array($starcik_o, MYSQL_ASSOC)) $punkty[] = $data; 我想在这个数组中添加另一个表,我尝试这样做: foreach ($punkty as $item)

我从mysql数据中获取:

$starcik_o = mysql_query("select id, mapa, miasto, nazwa_obiektu from oferty where id = 28");
        while($data = mysql_fetch_array($starcik_o, MYSQL_ASSOC)) $punkty[] = $data;
我想在这个数组中添加另一个表,我尝试这样做:

foreach ($punkty as $item)
        {
        $deserialized = unserialize($item['mapa']);
        $punkty['long'] = $deserialized['lng'];
        $punkty['lat'] = $deserialized['lat'];
        }
但它并不像我想的那样工作,因为var_dump($punkty);给我看

array(3) 
{ 
    [0]=> array(4) 
    { 
    ["id"]=> string(2) "28" 
    ["mapa"]=> string(97) "a:3:{s: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" 
    } 
    ["long"]=> string(18) "22.330280542373657" 
    ["lat"]=> string(17) "49.21103723075132" 
}
使用


您的循环正在执行它被告知要执行的操作:它从每个项目中获取
lat
lng
字段,并将其写入
$punkty
数组

我假设您希望
lat
lng
字段位于每个单独的项中,而不是数组的顶级。在这种情况下,将循环更改为:

foreach ($punkty as &$item) {   // added the '&' to reference the item
    $deserialized = unserialize($item['mapa']);
    $item['long'] = $deserialized['lng'];   // saving "long" to item
    $item['lat'] = $deserialized['lat'];    // saving "lat" to item
}

为什么在foreach循环中引用$punkty?“我以前从未见过这个大会。”马特说出了他的猫的名字@ariel还必须指出,
mysql.*
函数正在被弃用。使用PDO()或Mysqli()继续
foreach($punkty as&$item)
很简单,我同意,我也会这样做。除了我想建议的解决方案,海报更可能看到或理解。当你刚开始编程时,理解引用和何时使用它们可能很困难,所以他更可能复制和粘贴你的解决方案,而不是真正理解正在发生的事情。但是,我并不反对,在大多数情况下,这是更好的方法。不要忘记在foreach()循环结束后取消设置($item)
foreach ($punkty as $key => $item)
        {
        $deserialized = unserialize($item['mapa']);
        $punkty[$key]['long'] = $deserialized['lng'];
        $punkty[$key]['lat'] = $deserialized['lat'];
        }
foreach ($punkty as &$item) {   // added the '&' to reference the item
    $deserialized = unserialize($item['mapa']);
    $item['long'] = $deserialized['lng'];   // saving "long" to item
    $item['lat'] = $deserialized['lat'];    // saving "lat" to item
}
$starcik_o = mysql_query("select id, mapa, miasto, nazwa_obiektu from oferty where id = 28");
            while($data = mysql_fetch_array($starcik_o, MYSQL_ASSOC))
{
$punkty1[] = $data[' id'];
$punkty2[] = $data['mapa'];
$punkty3[] = $data['miasto'];
$punkty4[] = $data['nazwa_obiektu'];
.....
}
try this code