如何将Array拆分为可用数据,以便对其进行计数和操作

时间:2013-03-12 13:51:54

标签: php mysql

我有这个问题:

SELECT carID FROM reservations WHERE startDate < '".$sqlretdate."' AND endDate > '".$sqlcoldate."' OR startDate = '".$sqlcoldate."' OR endDate = '".$sqlretdate."'"

使用循环:

while($presentid = mysql_fetch_array($checkreservations)) {

这将返回一个数据数组,例如:

echo "<---space-->";
print_r($presentid['carID']);

会显示:

<---space-->11<---space-->10<---space-->2<---space-->8<---space-->9<---space-->7

这是一个id列表,我需要对每个ID做一些事情。

我可以爆炸它:

print_r(explode(" ", $presentid['carID']));

这会使它像这样打印:

Array ( [0] => 11 ) Array ( [0] => 10 ) Array ( [0] => 2 ) Array ( [0] => 8 ) Array ( [0] => 9 ) Array ( [0] => 7 )

如何完全拆分每个id并将其存储到变量中,以便我可以使用它们来做其他事情?

在这种情况下,每个ID对于汽车都是唯一的,并且具有与之关联的型号名称,因此我想使用该ID来找出与其相关的型号名称,计算该型号中的型号名称。数据库,然后检查有多少返回的ID与该模型相关,因此剩下多少。我希望这是有道理的。

3 个答案:

答案 0 :(得分:0)

除非要保留​​很多变量,否则不能将其存储到基本变量中,除非要保留​​很多变量,最好通过循环,将值存储到数组中,然后一旦进入数组就可以走到数组中while循环结束了,除非你马上就可以对它们做些什么。

“我如何完全拆分每个id并将其存储到变量中”

while($presentid = mysql_fetch_array($checkreservations))
{
    $carId = $presentid['carID'];
    $array[] = array('id' => $carId );
}

因此,一旦结束,你就可以解析数组。

答案 1 :(得分:0)

while循环中,$presentid表示结果集中的每一行。 $presentid['carID'] 不是数组!这是一个carID值。你需要在这里使用explode

while($presentid = mysql_fetch_array($checkreservations)) {
    // This *is* each car ID!  Do with it what you want.
    $carID = $presentid['carID'];
}

答案 2 :(得分:0)

$ids = array();
$count = 0;
while($presentid = mysql_fetch_array($checkreservations)) {
    $ids['car_' . $count++] = $presentid['carID'];
}
extract($ids);

这将为您提供自变量:

$car_0 = 11;
$car_1 = 12;
$car_2 = 2;

...等