2011-03-23 98 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