从数组创建数组

时间:2016-09-04 17:49:36

标签: php mysql

我正在使用这段代码,

$result1 = mysqli_query($con,$query)or die ("Error". mysqli_error($con)) ;  

while($res1 = mysqli_fetch_array($result1)) {       
    echo "<td>"($res1['date'])."</td>";
    echo "<td>"($res1['amount'])."</td>";
    echo "</tr>";
}

显示以下数据:

 2016-07-01 15
 2016-07-02 12
 2016-07-03 47
 2016-07-04 21
 2016-07-05 38
 2016-07-06 84
 2016-07-07 57
 2016-07-08 12

现在想要从$result1生成另一个数组,以仅提取或显示此数据:

 2016-07-05 38
 2016-07-06 84
 2016-07-07 57
 2016-07-08 12

但我不想修改这一行

$result1 = mysqli_query($con,$query1)or die ("Error". mysqli_error($con)) ;  

实际上我想从数组中提取一些特定的日期。即我想要date > 2016-07-04

是否可以从其他阵列创建数组?

由于

1 个答案:

答案 0 :(得分:0)

鉴于您不想修改查询的约束,您必须使用mysqli_result::data_seekmysqli_result::data_seek会将结果指针调整为指向结果集的开头,以便您可以再次遍历它,如下所示:

$result1 = mysqli_query($con,$query)or die ("Error". mysqli_error($con)) ;  

while($res1 = mysqli_fetch_array($result1)) {       
    echo "<td>" . $res1['date'] ."</td>";
    echo "<td>" . $res1['amount'] ."</td>";
    echo "</tr>";
}

// adjust the result pointer to point to the beginning of the result set
$result1->data_seek(0);

// now iterate through the result set again, based on the condition: date > '2016-07-04'
while($res1 = mysqli_fetch_array($result1)) {
    if($res1['date'] > '2016-07-04'){
        echo "<td>" . $res1['date'] ."</td>";
        echo "<td>" . $res1['amount'] ."</td>";
        echo "</tr>";
    }
}

以下是参考资料: