我们说我已将此字符串上传到数据库
"Red", "Blue", "Orange", "Green"
现在我已将其设置为一个变量,我称之为strColorArray
:
$strColorArray = '"Red", "Blue", "Orange", "Green"';
当我把它放在一个数组中时,我似乎无法按照我想要的方式工作, 我想知道是否有一种易于理解的解决方法。
$strColorArray = '"Red", "Blue", "Orange", "Green"';
$colorArray = array($strColorArray);
echo $colorArray[0];
目前
echo $colorArray[0]; gives "Red", "Blue", "Orange", "Green"
我希望$colorArray[0]
为红色,$colorArray[1]
为蓝色,依此类推。
答案 0 :(得分:3)
您需要使用explode()
函数将字符串转换为数组。在您的情况下,您可能需要做更多的事情:
$strColorArray = '"Red", "Blue", "Orange", "Green"';
$strColorArray = str_replace(array('"', ', '), array("", ","), $strColorArray); // Remove the spaces and double quotes
$colorArray = explode(",", $strColorArray);
当我提供var_dump($colorArray)
(检查变量的内容)时,我得到了这个输出:
array(4) {
[0]=>
string(3) "Red"
[1]=>
string(4) "Blue"
[2]=>
string(6) "Orange"
[3]=>
string(5) "Green"
}
答案 1 :(得分:0)
"单行"解决方案使用preg_match_all
函数:
preg_match_all("/\w+/i", $strColorArray, $matches);
print_r($matches[0]);
输出:
Array
(
[0] => Red
[1] => Blue
[2] => Orange
[3] => Green
)
答案 2 :(得分:0)
$strColorArray = '"Red", "Blue", "Orange", "Green"';
$stripper = str_replace(array("'",'"'),'',$strColorArray);
$colorArray = explode(',',$stripper);
echo $colorArray[0];
答案 3 :(得分:0)
这是另一种不使用正则表达式的方法:
$out = array_map(
function($item) {
return trim($item, '" ');
},
explode(',', $in)
);
答案 4 :(得分:-1)
只要您控制进出数据库的数据,那么这是一种简单的格式:
eval("\$colorArray = [$strColorArray];");
或者对于较旧的PHP版本:
eval("\$colorArray = array($strColorArray);");