我从我的mysql数据库中选择了一个列:
$savedSQL = 'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"';
$savedQuery = mysql_query($savedSQL);
我想将值作为单个维度,枚举数组返回,使得array [0] = row1,array [1] = row2等。
当我把它放入这样的数组:
while($savedResult = mysql_fetch_array($savedQuery))
{ $savedArray[] = $savedResult; }
它将它作为多维数组返回,以便数组[0] [0] = row1,array [1] [0] = row2等。
我想添加这样的东西:
while($i=0;$i<count($savedArray);$i++)
{
$newSavedArray[$i] = $savedArray[$i][0]
}
但有没有更简单,更有效的方法来实现这一目标?
你很近。您只需要访问$savedResult[0]
来检索您的列,并将其附加到$savedArray
while($savedResult = mysql_fetch_array($savedQuery)) {
$savedArray[] = $savedResult[0];
}
while($savedResult = mysql_fetch_array($savedQuery)) {
$savedArray[] = $savedResult['can_id'];
}
尝试
$savedArray[] = $savedResult['can_id'];
代替
$savedArray[] = $savedResult;
这是一个mysqli和没有循环的方法。它将您的所有代码仅限于两行。
$r = mysqli_query($c,'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"');
$savedArray = array_column(mysqli_fetch_all($r,MYSQLI_ASSOC),"can_id");
当你最初得到mysql的结果时,你可以将两个while循环的内容合并为一个:
while($result = mysql_fetch_array($savedQuery)) {
$savedArray[] = $result[0]; // or $result['can_id']
}