带有for循环的php数组输出并不是应该的

时间:2015-03-10 06:17:34

标签: php arrays for-loop

我正在尝试使用FECH_ASSOC从数据库中检索数据,以便输出如下所示

last1 first1 last2 first2& last3 first3

last4 first4& last4 first4

这是我拥有的数据库:

ID  index  first    last
--------------------------
1     1    first1   last1  
2     1    first2   last2  
3     1    first3   last3  
4     2    first4   last4  
5     2    first5   last5  

每个输出行应由索引值定义。 正如您在输出示例中所看到的,我需要在任何数组中最后一个之前的器官为separetad,因为我需要将&放在它之前。

这是我提出的代码:

//HERE I RETRIVE ALL THE DATA FROM THE DATABASE.
 $sql = "SELECT COUNT( * ) FROM table WHERE index= $index";
        $result = $dbh->prepare($sql);
        $result->execute();
        $number_of_rows = $result->fetchColumn();

//ASSOC DEFINITION
    $sth = $dbh->prepare("SELECT * FROM table WHERE index= $index);
    $sth->execute();
    $value = $sth->fetch(PDO::FETCH_ASSOC);

//THIS IS WHERE I CALL ALL THE ROWS BY THEIR VALUE
    $return = "";
                $fname                = $value['fname'];
                $lname                = $value['lname'];
                $numRow = $number_of_rows-2;   // THE ITEM BEFORE THE LAST ONE IN THE ARRAY
                $lastItem = $number_of_rows - 1; //LAST INDEX IN THE ARRAY
                    for($counter = 0; $counter <= $numRow; $counter++){
                    $value = $sth->fetch(PDO::FETCH_ASSOC);                 
                        $fname[$counter] = !empty($fname[$counter]) ? $fname[$counter] : '';

                    $return .= $lname. ', ' .   $fname;
                    }
                   $fname[$counter] = !empty($fname[$lastItem]) ? $fname[$lastItem] : '';

                    $return .= "&" . $fname. ', ' . $lname;
                    $return .= ' ';

            return $return; 

这是我得到的输出: last3 first1 last1 first1&amp; last2 first1

last5 first4&amp; last4 first4

我无法弄清楚我做错了什么。 我尝试使用foreach但我没有设法分离最后一对值here

我坚持这几天了。 任何帮助都会很棒。

0 个答案:

没有答案