PHP массивы: как печатать только значения массива, но не ключи - PullRequest
7 голосов
/ 23 марта 2011

Этот код перебирает таблицу mysql и печатает пустые / пустые поля. Однако он печатает значения массива и ключи, подобные этому

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);

Ответы [ 4 ]

9 голосов
/ 23 марта 2011
echo implode('<br>', $emptyFields);
1 голос
/ 23 марта 2011

Это потому, что вы используете print_r для вывода этого массива.Таким образом, вывод форматируется для чтения человеком.Чтобы сделать его более красивым, попробуйте повторить его, как вы делали это ранее с этим полем:

foreach($emptyFields as $key => $field) {
echo('Field "'.$field.'" on entry "'.$emptyField['userid'].'" is empty/null');
}
0 голосов
/ 23 марта 2011

Я не знаю, правильно ли я понимаю, но я думаю, что решение вашей проблемы:

изменить последнюю строку на:

$emptyFields[] = sprintf('Field "%s" on entry "%d" is empty/null', $field, $row['userid']);}}}print_r($emptyFields);
0 голосов
/ 23 марта 2011
$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']);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...