我创建了一个函数,理论上应该从另一个数组创建一个数组(基本上我想做的是将它降低 1 级)。
我的问题是,当代码不应该在新数组中创建另一个数组时,它会以某种方式创建另一个数组。甚至更多的输出是相当奇怪的。最终的数组应该都在同一个级别,但它以某种方式创建它是多维的并且具有额外的值。
问题似乎在循环中,但我看不到在哪里
任何帮助表示赞赏。
public function pullCompetencyByCID ( $cID ) {
$sql = 'SELECT * FROM ldc_competency_'.$this->lang.' WHERE cID='.$cID;
$result = $this->db->query($sql)->fetchAll(PDO::FETCH_ASSOC);
foreach ( $result as $key2 => $val2 ){
switch ($key2){
case 'cName': $cName = $val2;
break;
case 'cID': $cID = $val2;
break;
case 'cLevel': $cLevel = $val2;
break;
case 'cDetails': $cDetails = $val2;
break;
case 'cSummary': $cSummary = $val2;
break;
}
}
$pullCompetency = array('cName'=>$cName,'cID'=>$cID, 'cLevel'=>$cLevel, 'cDetails'=>$cDetails, 'cSummary'=>$cSummary);
return $pullCompetency;
}
该代码的输出是
Array (
[cName] => Array (
[cID] => 2
[cName] => dos
[cLevel] => 2
[cDetails] => doss
[cSummary] => dosssss
)
[cID] => 2
[cLevel] =>
[cDetails] =>
[cSummary] =>
)
的输出$result
只是
Array (
[0] => Array (
cID] => 2
[cName] => dos
[cLevel] => 2
[cDetails] => doss
[cSummary] => dosssss
)
)
为避免混淆,期望的结果应该是
Array (
[cID] => 2
[cName] => dos
[cLevel] => 2
[cDetails] => doss
[cSummary] => dosssss
)