将SQL结果转换为PHP数组

将SQL结果转换为PHP数组,php,sql,Php,Sql,我有以下sql查询: $sql = "SELECT lat, lang FROM users"; 然后,我使用以下代码将数组的结果放入两个数组中,一个用于lat,一个用于lang $i = 0; foreach($results as $row) { $latArray = array(); $langArray = array(); $latArray[$i] = $row['lat']; $langArray[$i] = $row['lan

我有以下sql查询:

$sql = "SELECT lat, lang
        FROM users";
然后,我使用以下代码将数组的结果放入两个数组中,一个用于lat,一个用于lang

$i = 0;

foreach($results as $row) {
    $latArray = array();
    $langArray = array();
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}
但是,似乎只存储传递给数组的最后一个值。当我回显数组的每个值时,我得到以下错误:未定义的偏移量:0,我相信这意味着latArray[0]中没有任何内容


我确信我在这里遗漏了一些明显的东西,但为什么没有将所有的值复制到新数组中?

在循环之前声明数组

$i = 0;
$latArray = array(); //Declare once, do not redeclare in the loop
$langArray = array();
foreach($results as $row) {
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}
$latArray = array();
$langArray = array();

foreach($results as $row) {
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}

在循环之前声明数组

$latArray = array();
$langArray = array();

foreach($results as $row) {
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}
你应该把

$latArray = array();
$langArray = array();
在foreach循环之前(就像您对计数器$i所做的那样),因为$result中的每个新值都会重置千个值

因此,您的代码将如下所示:

$i = 0;
$latArray = array();
$langArray = array();
foreach($results as $row) {
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}
你应该把

$latArray = array();
$langArray = array();
在foreach循环之前(就像您对计数器$i所做的那样),因为$result中的每个新值都会重置千个值

因此,您的代码将如下所示:

$i = 0;
$latArray = array();
$langArray = array();
foreach($results as $row) {
    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i = ($i + 1);
}

改用fetch_assoc:

$latArray = array();
        $langArray = array();
    while($row = mysql_fetch_assoc($your_query)){



    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i++;
}

如果您使用的是msqli us mysqli_fetch_assoc

请改用fetch_assoc:

$latArray = array();
        $langArray = array();
    while($row = mysql_fetch_assoc($your_query)){



    $latArray[$i] = $row['lat'];
    $langArray[$i] = $row['lang'];          
    $i++;
}
如果您正在使用msqli us mysqli_fetch_assoc

将“$latArray=array();”和行移到foreach之前。将“$latArray=array();”和行移到foreach之前。:)true数组在循环内声明:)true数组在循环内声明