phpfdf

Why does this php function using foreach with an array not work?


I am trying to write the fieldname/value lines of an FDF file with the function below in PHP. The first "hey there" prints, but none of the others. I am just starting with PHP and would appreciate any help.

function writeFDFTextboxLines($reportNameToFieldNumsArray, $reportName, $fileHandle, $value) {
    echo "hey there <br />";
    $valuesArray = $reportNameToFieldNumsArray[$reportName];
    foreach($valuesArray as $fieldNums) {
        echo "hey there <br />";
        foreach($fieldNums as $fieldNum) {
            echo "hey there <br />";
            if(strlen($fieldNum) > 0) {
                echo "hey there <br />";
                fwrite($filehandle, '<< /T (' . $reportName . "Textbox" . $reportNameToFieldNumsArray[$reportName] . ') /V /(' . $value . ')>>' . "\n");
            }
        }
    }
}

A $reportNameToFieldNumsArray example is

$firstnameLastnameArray = array("report1" => array("1"), "report2" => array("1"), "report3" => array("1"), "report4" => array("1"), "report5" => array("1"), "report6" => array("1"), "report7" => array(), "report8" => array(), "report9" => array(), "report10" => array("1"), "report11" => array("1"), "report12" => array("1"), "report13" => array("1"), "report14" => array("1"), "report15" => array("1"), "report16" => array("6"), "report17" => array("1"),  "report18" => array("1"));

Solution

  • Your $valuesArray contains array("1"), so your first foreach loops around the array. But $fieldNums is not an array. Try to var_dump($fieldNums), to see what it contains. It seem your don't need embeded foreach.