$str = 'answers[0] = "Love it"; answers[1] = "Hate it."; answers[2] = "Doesnt care"; answers[3] = "Like it";'
如何將其轉換爲數組?PHP將字符串數組列表轉換爲數組
$str = 'answers[0] = "Love it"; answers[1] = "Hate it."; answers[2] = "Doesnt care"; answers[3] = "Like it";'
如何將其轉換爲數組?PHP將字符串數組列表轉換爲數組
$str = 'answers[0] = "Love it"; answers[1] = "Hate it."; answers[2] = "Doesnt care"; answers[3] = "Like it";';
preg_match_all('/"(.*)";/U', $str, $matches);
$arr = $matches[1];
var_dump($arr);
以上工作是杉木樣品,但如果有其他字符串文字(或可能是HEREDOCS e.t.c.) –
取決於是否有任何其他變種 –
是的,我認爲是這樣.. –
這樣的事情?
<?php
$str = '$answers[0] = "Love it"; $answers[1] = "Hate it."; $answers[2] = "Doesnt care"; $answers[3] = "Like it";';
eval($str);
print_r($answers);
?>
如果不需要,不要使用'eval()'。而且總有另一種方法來實現你想要的。另外,OP示例字符串中沒有'$'符號,所以它不是答案。 –
eval()不是一個好的習慣..它允許在服務器中執行代碼以進行輸入..這可能會損害您的服務器.....所以嘗試另一種方法.... –
使用
使preg_split
只選擇值,並把它放在一個數組
例如:
$keywords = preg_split("/[\s,]+/", $str);
只要改變該p attern!
$str = 'answers[0] = "Love it"; answers[1] = "Hate it."; answers[2] = "Doesnt care"; answers[3] = "Like it";';
$chunks = explode(';', $str);
for ($aa=0;$aa<count($chunks);$aa++)
{
$chunks1 = explode('=', $chunks[$aa]);
$myArray[]=$chunks1[1];
}
$ myArray出現錯誤[] = $ chunks1 [1]; –
你得到的錯誤是什麼? – sskoko
$str = 'answers[0] = "Love it"; answers[1] = "Hate it."; answers[2] = "Doesnt care"; answers[3] = "Like it";';
preg_match_all('/"(.*?)"/', $str, $answers);
$answer = $answers[0];
print_r($answer);
不錯的工作,謝謝你 –
如果你能分號(;
)後增加新的線路,看看在parse_ini_string()
功能。
$str = str_replace(';', "\n", $str); // <- add them in the source if you can
$array = parse_ini_string($str);
是的,另一個解決方案是有效的。謝了哥們! –
第一個問題是,你是如何得到這樣的字符串? –
看起來像[XY問題](http://meta.stackexchange.com/a/66378)。你從哪裏得到這個字符串? – Reeno
將它轉換爲數組並不容易......我們如何分割這種類型的字符串......?嘗試只通過這個輸入值只有值。 –