0

私はすべてのスタイルを含む配列を持っているので、PHPでループして適切なCSSに変更する必要があります。

たとえば、

Array
(
    [#outlook a] => Array
        (
            [padding] => Array
                (
                    [0] => 0
                )

        )

    [body] => Array
        (
            [width] => Array
                (
                    [0] => 100% !important
                )

            [-webkit-text-size-adjust] => Array
                (
                    [0] => none
                )

            [margin] => Array
                (
                    [0] => 0
                )

            [padding] => Array
                (
                    [0] => 0
                )

            [background-color] => Array
                (
                    [0] => #FAFAFA
                )

        )
[.preheaderContent div a] => Array
    (
        [color] => Array
            (
                [0] => #336699
            )

        [font-weight] => Array
            (
                [0] => normal
            )

        [text-decoration] => Array
            (
                [0] => underline
            )

    )

[.preheaderContent div a:visited] => Array
    (
        [color] => Array
            (
                [0] => #336699
            )

        [font-weight] => Array
            (
                [0] => normal
            )

        [text-decoration] => Array
            (
                [0] => underline
            )

    )

)

このように、すべてのスタイル情報を含む大きな配列があります。だから私はこれを適切なCSSに変換する必要があります。私はこれが非常に簡単であることを知っています。しかし、私は再帰ループのどこかで失敗しています。これは私がこれに使用している関数です。

function cssbuild(&$cssArray)
{
    foreach ($cssArray as $selector => $style) 
    {
        if(is_array($style))
        {
            return $this->cssbuild($style);
        }
        else
        {
            $cssArray[$selector] = $cssArray[$selector].":".$style.";";
        }
    }
}

これを行う方法のアイデアは大歓迎です...

4

2 に答える 2

2

これを試して:

function createCSS($cssArray)
{
    $css = '';
    foreach ($cssArray as $classname => $properties)
    {
        $css .= "$classname{";
        foreach( (array) $properties as $propertyname => $propertyvalue )
        $css .= $propertyname .": ".$propertyvalue[0].";";
        $css .= "}";
    }
    return $css;
}
于 2013-03-05T11:02:28.253 に答える
0

与えられた例には再帰はありません...

再帰のためにこれで何かをすることができます

<?php
BuildList($arrayParent, 0);

function BuildList($arrayElements, $depth)
{
    foreach($arrayElements as $element => $style)
    {
        echo str_repeat("&nbsp;&nbsp;", $depth) . $element . ":" . $style;
        $depth++;
        if(count($element->subCSSElement) > 0)
            $depth = BuildList($element->subCSSElement, $depth);

        return $depth;
    }
}
?>
于 2013-03-05T10:53:27.097 に答える