将数组拆分为单独的字符串

时间:2014-07-12 11:33:34

标签: php

我有一个阵列在这里看到:

foreach ($fonts as $font) {

        $html .= '<option value="'. $font['name'] .''. $font['font'] .''. $font['css'] .'"' . selected( $layout_options['h1-font'], ''. $font['name'] .''. $font['font'] .''. $font['css'] .'', false) . '>' . __( ''. $font['name'] .'' ) . '</option>';

            $html.= $font['font'];
        $html .= '</option>';
    }

它的var_dump结果如下:

使用

var_dump($layout_options['h1-font']

我得到了结果

string(85) "Lobster@import url(http://fonts.googleapis.com/css?family=Lobster);'Lobster', cursive"

该数组由以下变量组成

'. $font['name'] .''. $font['font'] .''. $font['css'] .'

我需要将它们分开,理想情况下我想使用

$layout_options['hi-font-css']

我该怎么做?

更新:

希望如果我发布所有代码,它会解释得更多。

这是我的功能,我将回到原始代码,因为这稍微好一点。

function span_font_callback() {
$layout_options = (array) get_option( 'layout_options' );
$fonts = get_fonts();
$current = 'arial';

if ( isset( $layout_options['span-font'] ) )
    $current = $layout_options['span-font'];

?>
    <select name="layout_options[span-font]">
      <option value="default">Please select an option</option>
      <?php foreach( $fonts as $key => $font ): ?>
        <option <?php if($key == $current) echo "SELECTED"; ?> value="<?php echo $key; ?>"><?php echo $font['name']; ?></option>
      <?php endforeach; ?>
    </select>
    <input type="text" name="layout_options[span_font_size]" size="6" value="<?php echo $layout_options['span_font_size']; ?>" placeholder="Size"/>
    <input type="text" name="layout_options[span_font_colour]" size="6" value="<?php echo $layout_options['span_font_colour']; ?>" placeholder="Colour"/>

<?php   
}

这里是get_fonts()函数

function get_fonts() {
$fonts = array(
    'arial' => array(
        'name' => 'Arial',
        'font' => '',
        'css' => "'Arial', sans-serif"
    ),
    'Montez' => array(
        'name' => 'Montez',
        'font' => '@import url(http://fonts.googleapis.com/css?family=Montez);',
        'css' => "'Montez', cursive"
    ),
    'Open Sans' => array(
        'name' => 'Open Sans',
        'font' => '@import url(http://fonts.googleapis.com/css?family=Open+Sans);',
        'css' => "'Open Sans', sans-serif"
    ),
    'ubuntu' => array(
        'name' => 'Ubuntu',
        'font' => '@import url(https://fonts.googleapis.com/css?family=Ubuntu);',
        'css' => "'Ubuntu', sans-serif"
    ),
    'lobster' => array(
        'name' => 'Lobster',
        'font' => '@import url(http://fonts.googleapis.com/css?family=Lobster);',
        'css' => "'Lobster', cursive"
    )
);

return apply_filters( 'get_fonts', $fonts );

}

这是我的stylesheet.php

<?php $layout_options       = get_option ( 'layout_options' ); ?>

@import url(http://fonts.googleapis.com/css?family=Lobster);
.hero_text {
text-align: right;
padding-left: 5px;
display: inline;
float: right;
clear: both;
position: fixed;
right: 0;
font-family: <?php echo $layout_options['h1-font']; ?>;
font-size: <?php echo $layout_options['h1_font_size']; ?>;
color: <?php echo $layout_options['h1_font_colour']; ?>;
line-height: 20px;
}

我需要替换

@import url(http://fonts.googleapis.com/css?family=Lobster);

使用字体数组,这样当我的下拉列表更改时,它将更改该行以匹配字体。我需要使用类似下面的内容,但具体到数组名称,css和字体?

<?php echo $layout_options['h1-font-']; ?>;

希望你这更好吗?

1 个答案:

答案 0 :(得分:0)

在连接$html字符串之前,请执行以下操作:

$layout_options['hi-font-css'] = $font['name'] . $font['font'] . $font['css'];

因此整个代码将是:

foreach ($fonts as $font) {
        $layout_options['hi-font-css'] = $font['name'] . $font['font'] . $font['css'];
        $html .= '<option value="'. $layout_options['hi-font-css'] .'"' . selected( $layout_options['h1-font'], ''. $layout_options['hi-font-css'] .'', false) . '>' . __( ''. $font['name'] .'' ) . '</option>';

        $html.= $font['font'];
        $html .= '</option>';
}