理論的には別の配列から配列を作成する必要がある関数を作成しました(基本的には、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
)