2011-03-23 116 views
7

此代码循环遍历一个mysql表并输出空/空字段。然而,它打印的数组值和按键这样php数组:如何仅打印数组值而不是键

Array ( 
    [0] => Field "dob" on entry "1" is empty/null 
    [1] => Field "user_name" on entry "7" is empty/null 
) 

如何打印像这样field "dob" on entry "1" is empty/null

$sql = "SELECT * FROM userinfo"; 
$res = mysql_query($sql); 
while ($row = mysql_fetch_array($res)) { 
    foreach($row as $key => $field) { 
     if(empty($field)) { 
      $emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $key, $row['userid']); 
     } 
    } 
} 
print_r($emptyFields); 
+0

@Belinda:谢谢你的编辑 – karto 2011-03-23 11:07:16

回答

9
echo implode('<br>', $emptyFields); 
+0

它工作正常。在条目“11”上打印出字段“4”为空/空 条目“11”上的字段“地址”为空/空。他们都是一样的。如何避免输入“11”中的打印字段“4”为空/空。 – karto 2011-03-23 11:50:47

+0

我不明白你需要什么。你想跳过整数键,我是对的吗?只需使用检查'if(!is_integer($ key)和空($ field))'。 – biakaveron 2011-03-23 13:45:08

+0

非常感谢。它工作。:-) – karto 2011-03-26 12:51:57

0
$sql = "SELECT * FROM userinfo"; 
$res = mysql_query($sql); 
while ($row = mysql_fetch_array($res)) { 
    foreach($row as $key => $field) { 
    if(empty($field)) { 
     $emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $key, $row['userid']); 
    } 
    } 
} 
0

我不知道如果我得到这个正确的,但我认为解决你的问题是:

改变最后一行:

$emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $field, $row['userid']);}}}print_r($emptyFields); 
1

这是因为您正在使用print_r来输出该数组。所以输出格式化为人类可读。 为了使它更漂亮尝试来遍历它像你的那场以前那样:

foreach($emptyFields as $key => $field) { 
echo('Field "'.$field.'" on entry "'.$emptyField['userid'].'" is empty/null'); 
} 
+0

感谢。它的工作原理。它打印 – karto 2011-03-23 11:46:12