繁体   English   中英

遍历多维数组

Loop through a multidimensional array

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用php和dropbox api开发应用程序,并试图遍历多维数组并输出到表。 到目前为止,这是我的代码:

<?php
session_start();

# Include the Dropbox SDK libraries
require_once "Dropbox/autoload.php";
use \Dropbox as dbx;

// Create connection
$con = mysqli_connect(
    "localhost", "sintegra_aggre", "*******", "sintegra_aggregator"
);

// Check connection
if (mysqli_connect_errno($con)) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if (isset($_SESSION['uid'])) {
    $password = $_SESSION['pass'];
    $username = $_SESSION['user'];
    $email = mysqli_query($con, "
        SELECT * 
        FROM main_users
        WHERE
            password='$password'
            AND username='$username'
    ");

    if ($email >= 1) {
        // let them stay on page
    } else {
        header("Location: logout.php");
    }
} else {
    header("Location: login.php");
}

$accessToken = $_SESSION['accessToken'];

$dbxClient = new dbx\Client($accessToken, "PHP-Example/1.0");

$folderMetadata = $dbxClient->getMetadataWithChildren("/upload");

foreach ($folderMetadata as $value) {
    echo $value;
    foreach ($value as $val) {
        echo $val . "<br />";
    }
    echo "<br /><br />";
}
?>

这是数组的print_r的输出:

Array
(
    [hash] => d023a1738d460f667d383cb4f57bc769
    [revision] => 65
    [rev] => 411389e826
    [thumb_exists] => 
    [bytes] => 0
    [modified] => Wed, 28 Aug 2013 20:28:34 +0000
    [path] => /upload
    [is_dir] => 1
    [icon] => folder
    [root] => app_folder
    [contents] => Array
        (
            [0] => Array
                 (
                    [revision] => 81
                    [rev] => 511389e826
                    [thumb_exists] => 1
                    [bytes] => 1996564
                    [modified] => Wed, 28 Aug 2013 21:32:10 +0000
                    [client_mtime] => Wed, 28 Aug 2013 21:32:11 +0000
                    [path] => /upload/08-nigellas-chocolate-chip-muffins.jpg
                    [is_dir] => 
                    [icon] => page_white_picture
                    [root] => dropbox
                    [mime_type] => image/jpeg
                    [size] => 1.9 MB
                )

            [1] => Array
                (  
                    [revision] => 79
                    [rev] => 4f1389e826
                    [thumb_exists] => 1
                    [bytes] => 22848
                    [modified] => Wed, 28 Aug 2013 21:14:39 +0000
                    [client_mtime] => Wed, 28 Aug 2013 21:14:39 +0000
                    [path] => /upload/1376243030_guestion.png
                    [is_dir] => 
                    [icon] => page_white_picture
                    [root] => dropbox
                    [mime_type] => image/png
                    [size] => 22.3 KB
                )

            [2] => Array
                (
                    [revision] => 80
                    [rev] => 501389e826
                    [thumb_exists] => 
                    [bytes] => 54772
                    [modified] => Wed, 28 Aug 2013 21:26:19 +0000
                    [client_mtime] => Wed, 28 Aug 2013 21:26:19 +0000
                    [path] => /upload/BT_screen_quiz.java
                    [is_dir] => 
                    [icon] => page_white_cup
                    [root] => dropbox
                    [mime_type] => text/x-java
                    [size] => 53.5 KB
                )

           [3] => Array
               (
                    [revision] => 77
                    [rev] => 4d1389e826
                    [thumb_exists] => 
                    [bytes] => 1679
                    [modified] => Wed, 28 Aug 2013 20:59:53 +0000
                    [client_mtime] => Wed, 28 Aug 2013 20:59:53 +0000
                    [path] => /upload/login.php
                    [is_dir] => 
                    [icon] => page_white_php
                    [root] => dropbox
                    [mime_type] => text/php
                    [size] => 1.6 KB
                )

            [4] => Array
                (    
                    [revision] => 78
                    [rev] => 4e1389e826
                    [thumb_exists] => 
                    [bytes] => 2037
                    [modified] => Wed, 28 Aug 2013 21:00:56 +0000
                    [client_mtime] => Wed, 28 Aug 2013 21:00:56 +0000
                    [path] => /upload/signup.php
                    [is_dir] => 
                    [icon] => page_white_php
                    [root] => dropbox
                    [mime_type] => text/php
                    [size] => 2 KB
                )

        )

    [size] => 0 bytes
)

我尝试了多种不同方法的组合,例如:

他们都没有工作。

我希望有人能够给我一些代码,这些代码将遍历数组并将其输出到表中。 也是只需要将内容数组放入表中

预先感谢,马库斯

1 个回复

内联和阻止php的一点点就可以了。 其余的格式化取决于您; D

所有的foreach都已将这些值作为参考来完成,以加快速度。

修改后的答案

根据新信息,由于您希望将其布置在顶部,因此请尝试执行以下操作:

<?php $headings = array_keys($array['contents'][0]); ?>

<table>
    <tr>
        <?php foreach( $headings as &$heading ): ?>
            <th><?php echo $heading; ?></th>
        <?php endforeach; ?>
    </tr>
    <?php foreach( $array['contents'] as &$file ): ?>
        <tr>
            <?php foreach( $file as &$data ): ?>
                <td><?php echo $data; ?></td>
            <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
</table>

第一行将array_keys用作标题,打印出标题行,然后通过引用直接从数组中浏览数据行。

以前的修订

这是我的最后一个答案,它显示带有左侧标题的表格,并在列中显示数据。

<?php
    $output = array();

    foreach( $test['contents'] as &$file )
    {
        foreach( $file as $heading => &$value )
        {
            $output[$heading][] = $value;
        }
    }
?>

<table>
    <?php foreach( $output as $heading => &$data): ?>
        <tr>
            <th><?php echo $heading; ?></th>
           <?php foreach( $data as &$value ): ?>
               <td><?php echo $value; ?></td>
           <?php endforeach; ?>
        </tr>
    <?php endforeach; ?>
</table>

由于表的布局方式,您可以使用一些改组就可以正确地迭代数组。 不过,可能有成千上万种不同的方式来编写此代码。

1 循环通过多维数组?

我如何循环遍历多维数组? 说我们有这样的事情: 我将如何循环通过testArray来查找哪个foo是假的? ...

2 遍历多维数组

我试图遍历多维数组并将结果存储在变量中,以便我可以返回结果并保存它们。 就是说,我环顾了超级信息高速公路……而我找不到太多可以帮助我解决问题的东西。 到目前为止,这是我尝试过的。 运行脚本时,我只会得到一个结果。 如果我运行的脚本没有foreach语句,并且返回policyid,则 ...

3 遍历多维数组

我如何遍历下面的多维数组? 我正在创建这样的数组: 并添加以下内容: 我想遍历添加的所有不同电子邮件地址,然后遍历与该电子邮件相关联的每个随机字符串 有任何想法吗? ...

5 jQuery遍历多维数组

我试图遍历多维数组。 我想在数组中的div之一中删除类“列表”。 但是在我的网站上,此类的类可能不止一个div。 所以我试图用两个for循环来解决这个问题,但是我发现它没有用。 const $lists = [ $('.first'), $('.third') ]; v ...

6 遍历PHP多维数组

我正在尝试创建一个具有特定数量的行和列的2D数组,我将其存储为变量$ n ; 因此,如果$ n为5,则我将有5行和5列,全部为随机数。 我创建了一个for循环(如下所示),该循环生成正确数量的行,但是我无法弄清楚如何同时对列进行相同的操作。 我目前拥有的代码如下所示。 在学习创建数 ...

7 如何遍历多维数组

我有一个看起来像这样的数组: 我想做的是遍历“ apple”元素并输出如下内容: 我该怎么做? 因此,我的主要目标是将日期和值组织在一起。 我的数组数据比上面的示例长得多,但是我只需要帮助才能使工作代码循环并回显类似上面的示例的内容。 我尝试使用foreach ,但 ...

8 Foreach遍历多维数组

我有从html表单获得的这组数据。 它基本上是一个多维数组。 数据 问题:我想做的是遍历此数组,并为每次迭代创建一个数据变量( array )。 因此,例如: 第一次迭代: 第二次迭代: 我已经试过了: 但这没有用。 对不起,我的英语不好,谢 ...

9 遍历多维(嵌套)数组

我有一个像下面的数组,并想创建一个&lt;html&gt;表单。 我试图做到这一点,但我似乎无法弄清楚如何遍历具有我要使用的值的内部/嵌套数组。 谁能帮我吗? 为了清楚起见,我想要一个类似html的输出: 功能 排列 ...

10 如何遍历多维数组?

我目前正在从公司的API获取JSON响应,并将其转换为如下所示的PHP数组: 当我在$api_details上运行var_dump时,我得到了: 我正在尝试做两件事,却无法弄清楚如何使用多维数组。 我需要检查metadata &gt; iserror是否为false 。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM