我的文字如下
问题1 这是第1号问题
问题2 这是第2号问题 问题3 这是问题3和
我想在带有键值对的数组中保留这些问题和答案,即
$array = array(
'question no.1' => 'this is question no.1 ans'
'question no.2' => 'this is question no.2 ans'
'question no.3' => 'this is question no.3 ans'
);
我尝试了什么。
我只是保留$#的结尾和$?并且每个答案的结束,以便我可以将文本分解为两个数组,并且可以组合两个数组,如下所示。
问题1 $#
这是问题1的问题?$?
问题2 $#
这是问题2的问题?$?
问题3 $#
这是第3号问题和$?
$questions = explode('$#',$textfromdb);
$answer = explode('$?',$textfromdb);
$combines = array_combine($questions,$answer);
任何建议都表示赞赏。
谢谢
答案 0 :(得分:1)
问题和答案存储为字符串。因此,当出现新行(\ n)时,我们需要explode 。
array_filter()用于过滤掉数组中的空白值。 array_values()仅使用0,1,2 ...
键取出值接下来,我们需要遍历此print_r($filteredArray)
。如果您尝试 $array = explode("\n", $string); // Explode the string when new line appears
$filteredArray = array_values(array_filter($array)); // Filtering out blank values and storing the values in $filteredArray
foreach ($filteredArray as $k => $arr) {
if ($k %2 == 0) { // Even keys 0, 2, 4... contain the questions
$questions[] = $arr;
} else { // Odd keys 1, 3, 5... contain the answers
$answers[] = $arr;
}
}
$questionAnswers = array_combine($questions, $answers); // Converting questions-answers as key-value pairs
,您会发现偶数键包含问题而奇数键包含答案。因此,我们会相应地存储问题和答案。
最后,我们使用array_combine()来形成问题和答案的键值对。
{{1}}
答案 1 :(得分:0)
array_combine() - 使用一个数组作为键创建一个数组,另一个数组创建数值
<强>语法:强>
array_combine ( array $keys , array $values );
使用keys数组中的值作为键创建数组,将values数组中的值作为相应的值。
尝试将问题保持为单独的数组并以单独数组的形式回答
<?php
// Question Array
$question = array('Question1','Question2','Question3');
//Answer Array
$answer = array('Answer1','Answer2','Answer3');
//array_combine()
$combined_array = array_combine($question, $answer);
print_r($combined_array);
?>
<强>输出:强>
Array ( [Question1] => Answer1 [Question2] => Answer2 [Question3] => Answer3 )