我是如何从mysql查询创建这个数组的?

时间:2011-03-15 04:53:51

标签: php mysql arrays sorting

我想知道如何创建这个数组

$datos = new ArrayIterator(array(
  "08:00:00" => new Vector ("08:00:00","08:30:00","sandrad"),
  "10:00:00" => new ArrayIterator (array( "10:00:00", "10:45:00", "palomas" )),
  "20:00:00" => new Vector("20:00:00","21:15:00","pedrales"),
  "25:30:00" => new ArrayIterator ( .....etc....
))

这是我的查询以及我的尝试:

$sql = "SELECT * FROM amigos WHERE fecha='$fecha' AND ORDER BY hora_inicio ASC ";
$result = mysql_query($sql) or die(mysql_error());

$totalRows = mysql_num_rows($result);


while ($row = mysql_fetch_assoc($result)) {
  switch ($funcion) {
    case 'new Vector (':
      $funcion='new ArrayIterator (array(';
      break;
    case 'new ArrayIterator (array(':
      $funcion ='new Vector (';
      break;
    default:
      $funcion ='new Vector (';
}

switch ($fin_funcion) {
  case '),':
    $fin_funcion = ')),';
    break;
  case ')),':
    $fin_funcion = '),';
    break;
  default:
    $fin_funcion = '),';
}

$datos=new ArrayIterator(array(
  $row['hora_inicio'] => $funcion.'"'.$row['hora_inicio'].'","'.$row['hora_final'].'","'.$row['nombre'].'"'.$fin_funcion



));

}

但我没有运气。任何想法?

1 个答案:

答案 0 :(得分:1)

每次循环都会创建一个新的$ datos ArrayIterator。 如果需要ArrayIterator,请创建整个数组,然后对其进行初始化。

$datos = array();
while($row=mysql_fetch_assoc($result)){
    switch($funcion){
        case 'new Vector (':
            $funcion='new ArrayIterator (array(';
            break;
        case 'new ArrayIterator (array(':
            $funcion ='new Vector (';
            break;
        default:
            $funcion ='new Vector (';
    }

    switch($fin_funcion){
        case '),':
            $fin_funcion = ')),';
            break;
        case ')),':
            $fin_funcion = '),';
            break;
        default:
            $fin_funcion = '),';
    }

    $datos[$row['hora_inicio']] = $funcion.'"'.$row['hora_inicio'].
        '","'.$row['hora_final'].'","'.$row['nombre'].'"'.$fin_funcion;
}

$datos = new ArrayIterator($datos);