繁体   English   中英

如何存储关联数组php MySQL

[英]how to store associative array php MySQL

我想将查询结果存储为关联数组。 下面是我的代码,生成下面的查询结果。

<?php

$include('config.php') //mysql connection file
$result = mysql_query("SELECT daystime.*, Sprinkler_ID FROM daystime, scheduler WHERE   daystime.id = scheduler.DaysTime_ID ORDER BY daystime.id, Sprinkler_ID") or trigger_error(mysql_error());

$data_array = array();
while($rs = mysql_fetch_assoc($result))
{
    $key=$rs['id'];
    $value=$rs['Sprinkler_ID'];
    $data_array[$key] = [$value];
}

foreach ($data_array as $key => $value)
{
    echo $key.'=>'.$value.'<br />';
}
?>

结果表

这给我输出为

 19=>Array
 20=>Array
 21=>Array
 27=>Array
 29=>Array

但是我应该得到

 19 -> [4,5],
 20 -> [5], 
 21=>[4,6], 
 // and so on

$value是一个数组,你不能使用echo对数组

不要循环只是做一个var_dump()

$data_array = array();
while($rs = mysql_fetch_assoc($result)){
    $data_array[$rs['id']][]=$rs['Sprinkler_ID'];
}
var_dump($data_array);//or print_r($data_array);
<?php
$include('config.php') //mysql connection file
$result = mysql_query("SELECT daystime.*, Sprinkler_ID FROM daystime, scheduler WHERE   daystime.id = scheduler.DaysTime_ID ORDER BY daystime.id, Sprinkler_ID") or trigger_error(mysql_error());

$data_array = array();
while($rs = mysql_fetch_assoc($result))
{
    $key=$rs['id'];
    $value=$rs['Sprinkler_ID'];
    $data_array[$key] = [$value];
}
$out = '';
$count = count($data_array);
$iter = 0;
foreach ($data_array as $key => $value)
{
    $out.= $key.'=>[';
    foreach ($value as $val) {
        $out.=$val.',';
    }
    $out = rtrim($out, ",");
    $out.= ']';
    if ($iter < ($count-1)) {
        $out.=',<br />';
    }
    $iter++;
}
echo $out;

您需要一个内部foreach循环来处理$ value中的数组打印,因为这是一个多维数组。 前面是一个示例,显示了它看起来如何产生所需的确切输出。 如果要查找值的转储,请使用@meda提供的var_dump解决方案。

您的代码中有两个问题。 第一个是$value是一个数组,第二个是该数组仅包含一个项目。

尝试这个:

$data_array = array();
while($rs = mysql_fetch_assoc($result))
{
    $key=$rs['id'];
    $value=$rs['Sprinkler_ID'];
    $data_array[$key][] = $value;
}

foreach ($data_array as $key => $values)
{
    echo $key.'=> [';
    foreach($values as $value)
       echo $value . ',';
    echo ']<br />';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM