Преобразовать набор результатов php в массив - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь преобразовать набор результатов php в массив (используя foreach), я не совсем правильно делаю ..

У меня есть набор результатов:

$result

IЯ делаю это, как показано ниже: (ужасно неправильно)

while($row = mysql_fetch_array($result)) {

    foreach (mysql_fetch_array($result) as $k => $v) {
      echo "Fred's $k is ". $v['uid']. "\n";
    }

}

Я хочу, чтобы этот массив был в следующем формате:

Array
(
    [0] => Array    //row1
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .

        )

    [1] => Array    //row2
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .
        )

    [2] => Array    //row3
        (
            [column1] => value
            [column2] => value
            [column3] => value
        .
        .
        )

)

Я новичок, пожалуйста, помогите.

Ответы [ 5 ]

6 голосов
/ 15 декабря 2011
    $results = array();
    while($row = mysql_fetch_assoc($result))
    {
        $results[] = $row;
    }

    //$results has all that you need
    print_r($results);
1 голос
/ 15 декабря 2011

Вам не нужен foreach для этого, вы можете просто придерживаться цикла while:

$result_set = array();

while($row = mysql_fetch_array($result)) {
    $result_set[] = $row;
}

Тогда вы можете использовать его как обычный массив:

$result_set[0]['column_name'];
0 голосов
/ 15 декабря 2011

Попробуйте mysql_fetch_assoc вместо:

$results_array = array();
while($row = mysql_fetch_assoc($result)) {
    $results_array[] = $row;
}
0 голосов
/ 15 декабря 2011

Попробуйте,

while($row = mysql_fetch_assoc($result)) {
   $ar[]=$row;
}
0 голосов
/ 15 декабря 2011

Я не очень хорошо понимаю, но надеюсь, что это поможет вам:

$array = array();
while($row = mysql_fetch_array($result)) {
 $array[] = $row['uid'];
}
...