如何从数组中获取数据?

时间:2018-07-19 09:50:51

标签: php arrays

我在显示数组中的数据时遇到问题,如何从波纹管数组中检索数据?

 Array
    (
        [downloads] => Array
            (
                [0] => Array
                    (
                        [url] => http://samplelink.com
                        [release_notes] => Array
                            (
                                [0] => lorem ispum
                                [1] => lorem ispum.
                                [2] => lorem ispum.
                            )

                    )

                [1] => Array
                    (
                        [url] => http://samplelink.com
                        [release_notes] => Array
                            (
                                [0] => lorem ispum.
                                [1] => lorem ispum.
                                [2] => lorem ispum.
                                [3] => lorem ispum.
                                [4] => lorem ispum.
                            )

                    )

            )

        [result_code] => OK
    )

我已经尝试过了,但是没有给出确切的答案,我该如何放置序列号。在每个数据的结果数据中?

foreach ($data as $innerArray) {
            if (is_array($innerArray)){
                foreach ($innerArray as $value) {
                    echo '<p>'.$value['url'].'</p>';
                    echo '<p>'.$value['release_notes'].'</p>';
                }
            } 
        }

3 个答案:

答案 0 :(得分:1)

您可以尝试

foreach ($data['downloads'] as $downloads) {

    echo '<p>'.$downloads['url'].'</p>';

    if (is_array($downloads['release_notes'])) {
        foreach ($downloads['release_notes'] as $release_note) {
            echo '<p>'.$release_note.'</p>';
        }
    }

}

答案 1 :(得分:1)

这有点粗糙,但希望能有所帮助。我在Google中找到了这个简洁的工具,您可以复制/粘贴下面的代码以查看其工作原理。 http://phptester.net/

$parentArray = [
    'downloads' => [
        [
            'url' => 'http://www.google.com/',
            'release_notes' => [
                    'lorem ipsum',
                    'lorem ipsum',
                    'lorem ipsum'
            ]
        ],
        [
            'url' => 'http://www.google.com/',
            'release_notes' => [
                    'lorem ipsum',
                    'lorem ipsum',
                    'lorem ipsum'
            ]
        ]       
    ],
    'result_code' => 'OK'
];

// Loop Through Downloads
foreach($parentArray['downloads'] as $download) {

    // Parse Through Single Download
    foreach($download as $key => $item) {

        echo $key . ': ';

        if(is_array($item)) {
            echo '<br />';

            echo '<ul>';

            foreach($item as $key => $item) {

                echo '<li>' . $item . '</li>';

            }

            echo '</ul>';

        }

        else {
            echo $item;
        }


    }

    echo '<hr />';

}

它输出以下内容:

Output

答案 2 :(得分:1)

如果您的数组可以具有多于或少于3个级别的数组(未定义的3个级别),则需要使用递归。

function RecurSearch($MyArray)
{
    foreach ($MyArray AS $key => $SubElement)
    {
        if ($key === "url")
        {
            echo "<p>" . $SubElement . "</p>";
        }
        else if ($key === "release_notes")
        {
            foreach($SubElement AS $ReleaseNote)
            {
                echo "<p>" . $ReleaseNote . "</p>";
            }
        }
        else if (is_array($SubElement))
        {
            RecurSearch($SubElement);
        }
    }
}

输出:

  

http://samplelink.com

     

lorem ipsum

     

lorem ipsum。

     

lorem ipsum。

     

http://samplelink.com

     

lorem ipsum。

     

lorem ipsum。

     

lorem ipsum。

     

lorem ipsum。

     

lorem ipsum。