【发布时间】:2016-04-17 07:15:21
【问题描述】:
我有一个包含 sql 数据的表。 db 中的某些列的名称超过 1 个。我已经从它们创建了一个数组,但现在我需要在创建表时比较两者。
$strArrayChildren = explode(',', $children);
$strArrayChildren = str_replace('and', '', $strArrayChildren);
$childCount = count($strArrayChildren);
$strArrayGrades = explode(',',$the_grades);
$strArrayGrades = str_replace('(', '', $strArrayGrades);
$strArrayGrades = str_replace(')', '', $strArrayGrades);
$grades ='';
foreach($strArrayChildren as $child){
foreach($strArrayGrades as $grade){
if(strpos($grade, $child) !== false){
$grades = preg_replace('([a-z A-Z ()]+)', "", $grade);
}elseif(strpos($grade, $child) !== true){
$grades ='';
}
}
echo "<tr>";
echo "<td>{$child}</td>";
echo "<td>{$last_name}</td>";
echo "<td>Child</td>";
echo "<td>{$grades}</td>";
echo "</tr>";
}
当我运行此代码时,我让学生的成绩与数组中的名字相匹配,但随后其他成绩继续尝试与第一个学生相匹配,即使有一个新行有一个新的姓名。
任何帮助都会很棒!谢谢!
【问题讨论】:
-
var_dump ($strArrayChildren)在第 4 行,var_dump ($strArrayGrades)在第 7 行。你有什么? -
for 'var_dump ($strArrayChildren)' 我得到以下一堆:array(3) { [0]=> string(5) "Becky" [1]=> string(6) " Aaron" [2]=> string(6) " Luke" } for var_dump ($strArrayGrades) 我得到以下一堆:array(3) { [0]=> string(6) "Olivia" [1] => 字符串(5)“艾伦”[2]=>字符串(6)“杰克”}
-
在这些数组中看不到任何成绩信息。而且,这两者之间似乎没有任何关系!
-
抱歉一年级是这个,array(2) { [0]=> string(7) "1 Becky" [1]=> string(9) "11 Aaron" } array(1 ) { [0]=> string(11) "12 Gertrude" } array(1) { [0]=> string(7) "6 Laura" } array(1) { [0]=> string(7) " 1 苏珊” } 数组(1) { [0]=> 字符串(9)“11 克里” } 数组(2) { [0]=> 字符串(8)“2 奥利维亚” [1]=> 字符串(7) " 2 Alan" } array(1) { [0]=> string(8) "3 Claire" } array(1) { [0]=> string(8) "1 Claire" } 不知道为什么它没有显示最后一个的等级。这些名称是我要匹配的关系。