Force array to be a string

时间:2017-03-30 作者:user116556

我使用一个图表插件,我需要强制一些数组元素为字符串。

$values_x = array();
            for ($i = 0; $i < count( $series[0][\'data\'] ); $i++ ) {
                $values_x[] = $series[0][\'data\'][$i][0];
            }

            $values_y = array();
            for ($i = 0; $i < count( $series[0][\'data\'] ); $i++ ) {
                $values_y[] = $series[0][\'data\'][$i][1];
            }

            $categories = array(
                "label"  => $label_x,
                "values" => $values_x,
                "colors" => $eco_chart_colors,
            );

            $series = array("label" => null, "values" => array( array("data" => $values_y)));

        } else {

            $categories = array(
                "label"  => $label_x,
                "values" => $values_x,
                "colors" => "",
            );

            $series = array("label" => $label_y, "values" => $series);

        }
我需要$values\\u x才能成为字符串。它在图中输出年份,但在json中它是整数,我需要它是字符串。不是2010年,而是“2010年”。我试过使用strval和其他一些选项,但似乎做得不对,它会输出“值”:当我尝试时为null。有人能帮忙吗?提前谢谢。

2 个回复
SO网友:Clint Stegman

有几种方法可以将整数设置为字符串。以下是实现这一目标的两种主要方法

  1. Type Cast - $values_x[] = (string) $series[0][\'data\'][$i][0]

  2. Double Quote - $values_x[] "{$series[0][\'data\'][$i][0]}"

此外,您可能需要先检查null并指定默认值

$values_x = !empty($values_x) ? $values_x : array(\'2010\');
如果要使整个数组成为字符串,请使用implode

"values" => implode(\', \', $values_x)
如果有多个整数,这将输出“2010、2011”。将逗号和空格替换为要在片段之间放置的内容。

http://php.net/manual/en/function.implode.php

SO网友:xvilo

我不确定你的代码是如何工作的。但如果$series[0][\'data\'][$i][0] 生成2010 例如,您可以执行以下操作:

$values_x = array();
        for ($i = 0; $i < count( $series[0][\'data\'] ); $i++ ) {
            $values_x[] = (string)$series[0][\'data\'][$i][0];
        }

        $values_y = array();
        for ($i = 0; $i < count( $series[0][\'data\'] ); $i++ ) {
            $values_y[] = $series[0][\'data\'][$i][1];
        }

        $categories = array(
            "label"  => $label_x,
            "values" => $values_x,
            "colors" => $eco_chart_colors,
        );

        $series = array("label" => null, "values" => array( array("data" => $values_y)));

    } else {

        $categories = array(
            "label"  => $label_x,
            "values" => $values_x,
            "colors" => "",
        );

        $series = array("label" => $label_y, "values" => $series);

    }
您可以使用(int), (bool), (string) 等等。字符串的示例如下:

$AlwaysAnInt = (int)$CouldBeAnInt

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请