【问题标题】:Handling multi-dimensional array in PHP在 PHP 中处理多维数组
【发布时间】:2014-06-25 08:57:44
【问题描述】:

我有一个像这样的 $row 数组值。

    Array
    (
            [123] => Array
                (
                    [0] => Array
                        (
                            [author_name] => A1
                            [book_name] => A1B1
                            [rating] => 5
                        )

                    [1] => Array
                        (
                            [author_name] => A1
                            [book_name] => A1B2
                            [rating] => 5.5
                        )

                    [2] => Array
                        (
                            [author_name] => A1
                            [book_name] => A1B3
                            [rating] => 5.7
                        )
                )


                [456] => Array
                (
                    [0] => Array
                        (
                            [author_name] => A2
                            [book_name] => A2B1
                            [rating] => 7
                        )
                  )     
    )         

我需要像这样显示上面的数组值。

    Author Code         Author Name     Book Name       Rating
    123                 A1              A1B1            5   
                                        AlB2            5.5
                                        A1B3            5.7

    456                 A2              A2B1            7       

我是数组概念的新手,现在我可以单独获取数组了。 任何 php 代码都会有很大帮助。

【问题讨论】:

  • here开始
  • 您可以使用嵌套的 foreach 循环并检查数组是什么。反正很简单,你试过了吗?
  • 我的数组概念很丑。一些代码会帮助我。 ;(

标签: php arrays for-loop multidimensional-array foreach


【解决方案1】:

我不知道还有什么其他方法(或选项)来打印类似的内容,但或者,您也可以对其进行重组。考虑这个例子:

<?php

$original_values = array(
    123 => array(
        array('author_name' => 'A1', 'book_name' => 'A1B1', 'rating' => 5),
        array('author_name' => 'A1', 'book_name' => 'A1B3', 'rating' => 5.5),
        array('author_name' => 'A1', 'book_name' => 'A1B1', 'rating' => 5.7),
    ),
    456 => array(
        array('author_name' => 'A2', 'book_name' => 'A2B1', 'rating' => 7),
    ),
);

$formatted_values = array();
foreach($original_values as $id => $array1) {
    foreach($array1 as $index => $value) {
        $formatted_values[$id][$value['author_name']][] = array('name' => $value['book_name'], 'rating' => $value['rating']);
    }
}

?>

<table cellpadding="10">
    <thead><tr><th>Author Code</th><th>Book Name</th><th>Book Name</th><th>Rating</th></tr></thead>
    <tbody>
    <?php foreach($formatted_values as $author_code => $value): ?>
        <tr valign="top">
            <td><?php echo $author_code; ?></td>
            <?php foreach($value as $author_name => $books): ?>
                <td><?php echo $author_name; ?></td>
                <td><?php foreach($books as $book_info): ?><?php echo $book_info['name']; ?><br/><?php endforeach; ?></td>
                <td><?php foreach($books as $book_info): ?><?php echo $book_info['rating']; ?><br/><?php endforeach; ?></td>
            <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>

Sample Output

【讨论】:

  • 完全正确。这个。万分感谢。请支持我的问题;(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 2018-06-28
相关资源
最近更新 更多