如何使用字符串

时间:2016-07-23 18:47:18

标签: php arrays

我们说我已将此字符串上传到数据库

"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]为蓝色,依此类推。

5 个答案:

答案 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"
}

输出:http://ideone.com/3MhGle

答案 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
)

http://php.net/manual/en/function.preg-match-all.php

答案 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);");