我使用一个图表插件,我需要强制一些数组元素为字符串。
$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。有人能帮忙吗?提前谢谢。
SO网友:Clint Stegman
有几种方法可以将整数设置为字符串。以下是实现这一目标的两种主要方法
- Type Cast -
$values_x[] = (string) $series[0][\'data\'][$i][0]
- 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