所以我试图在循环中创建一个数组,这样我就可以在代码的其他地方使用它的元素…
因此,当我尝试var_dump数组以查看是否已将所有期望的元素添加到数组中时,我只看到新数组中数组的最后一个元素。谁能解释一下为什么……下面是代码
的相关部分$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.
问题是每次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();
if (isset($row["Device"]) && !empty($row["Device"])) {
$user_array[] = $row["Device"];
}
,你有一个干净的数组与数据。
print_r($user_array);