Php array\u push仅返回已推入新数组的最后一个元素?
所以我试图在循环中创建一个数组,这样我就可以在代码的其他地方使用它的元素 因此,当我尝试var_转储数组以查看是否所有预期元素都已添加到数组中时,我只看到新数组中数组的最后一个元素。。谁能解释一下为什么。。。以下是代码的相关部分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) {
$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。