Php array\u push仅返回已推入新数组的最后一个元素?

Php array\u push仅返回已推入新数组的最后一个元素?,php,Php,所以我试图在循环中创建一个数组,这样我就可以在代码的其他地方使用它的元素 因此,当我尝试var_转储数组以查看是否所有预期元素都已添加到数组中时,我只看到新数组中数组的最后一个元素。。谁能解释一下为什么。。。以下是代码的相关部分 $select = "SELECT * FROM DEVICES"; $result = mysql_query($select); $result_count = mysql_num_rows($result) if($result_count > 0) {

所以我试图在循环中创建一个数组,这样我就可以在代码的其他地方使用它的元素

因此,当我尝试var_转储数组以查看是否所有预期元素都已添加到数组中时,我只看到新数组中数组的最后一个元素。。谁能解释一下为什么。。。以下是代码的相关部分

$select  = "SELECT * FROM DEVICES";
$result = mysql_query($select);
$result_count = mysql_num_rows($result)

if($result_count > 0) {
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

        echo "<td> <a class='inline' href='/profiles.php?id=".$row['ID']."'><img src='".$row['Picture']."'width='50' height='50' class ='image' /></a> <br /> <br /> <div style='color: blue; font-weight:bold; font-size:15px;'> By ".$row['Name']." </td>";
        $user_array = array();
        if(array_key_exists("Device",$row)){
            array_push ($user_array,$row["Device"]);
        }    
    }
}
var_dump($user_array);  // only returns the last element inserted into $user_array.
$select=“选择*来自设备”;
$result=mysql\u查询($select);
$result\u count=mysql\u num\u行($result)
如果($result\u count>0){
而($row=mysql\u fetch\u array($result,mysql\u ASSOC)){
通过“$row['Name']”回显“

”; $user_array=array(); 如果(数组\键\存在(“设备”,$row)){ array_push($user_array,$row[“Device”]); } } } var_dump($user_数组);//仅返回插入到$user\u数组中的最后一个元素。
问题在于,每次执行while循环体时,都要重置数组

必须在循环外部初始化数组:

$user_array = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

    echo "<td> <a class='inline' href='/profiles.php?id=".$row['ID']."'><img src='".$row['Picture']."'width='50' height='50' class ='image' /></a> <br /> <br /> <div style='color: blue; font-weight:bold; font-size:15px;'> By ".$row['Name']." </td>";

    if(array_key_exists("Device",$row)) {
        array_push ($user_array,$row["Device"]);
    }    
}

var_dump($user_array);
$user_array=array();
而($row=mysql\u fetch\u array($result,mysql\u ASSOC)){
通过“$row['Name']”回显“

”; 如果(数组\键\存在(“设备”,$row)){ array_push($user_array,$row[“Device”]); } } 变量转储($user\u数组);
试试这个,更简单一些

$user_array = array();
if (isset($row["Device"]) && !empty($row["Device"])) {
  $user_array[] = $row["Device"];
}
你有一个干净的数据数组

print_r($user_array);

是 啊我忘了。。谢谢一群人!通过使用远程调试器解决这些问题最为方便,例如PHP:X-Ref中的xdebug相同类型的错误:。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。