如何使用PHP获取内部数组值?

时间:2018-08-20 11:00:53

标签: php arrays multidimensional-array

我有这个数组

Array
(
    [thumbnail] => Array
        (
            [width] => 150
            [height] => 150
            [crop] => 1
        )

    [medium] => Array
        (
            [width] => 300
            [height] => 300
            [crop] => 
        )

    [medium_large] => Array
        (
            [width] => 768
            [height] => 0
            [crop] => 
        )

    [large] => Array
        (
            [width] => 1024
            [height] => 1024
            [crop] => 
        )

    [twentyseventeen-featured-image] => Array
        (
            [width] => 2000
            [height] => 1200
            [crop] => 1
        )

    [twentyseventeen-thumbnail-avatar] => Array
        (
            [width] => 100
            [height] => 100
            [crop] => 1
        )

)

如果我使用print_r(array_keys($ arraydata,true)),我会得到缩略图名称的值,但是我想获得所有宽度和高度以及相应的宽度和高度值。我可以使用foreach尝试过的键,但是没有用

4 个答案:

答案 0 :(得分:0)

您当然可以使用foreach循环,实际上是2,因为您在数组中有一个数组。

foreach ($array as $size => $subarr) {
    echo $size. '<br>';

    foreach ( $subarr as $name => $val ) {
        // dont want the crop information
        if ( $name == 'crop' ) continue;

        echo $name . ' = '. $val . '<br>';
    }
}        

输出应该像

thumbnail
width = 150
height = 150

. . .

这可能不是您真正想要的输出格式,但是您可以在此基本流程周围添加它。

答案 1 :(得分:0)

您可以使用1 foreach并将$key用作缩略图的值,并使用widthheight键:

foreach($arraydata as $key => $value) {
    echo "key: $key: width: ${value['width']} height: ${value['height']}<br>";
}

Demo

答案 2 :(得分:0)

    $height = array_combine(array_keys($ar), array_column($ar,'height'));
    $width = array_combine(array_keys($ar), array_column($ar,'width'));

答案 3 :(得分:-1)

$array['thumbnail']['width']

将返回150

$array['thumbnail']['height']

将返回150