Hi

I thought I had resolved this problem but I am intermittently
the receving the warnings below.

This code consist of a 1) HTML form, 2) a display function on the HTML form and
3) a process to manage the form input.

Can you show me what I am doing wrong and or how to correct it ?

Message received:

Warning: array_filter() [function.array-filter]:
The first argument should be an array in D:\search_process.php on line 155

Warning: array_filter() [function.array-filter]:
The first argument should be an array in D:\search_process.php on line 156

Warning: array_filter() [function.array-filter]:
The first argument should be an array in D:\search_process.php on line 171

Warning: array_filter() [function.array-filter]:
The first argument should be an array in D:\search_process.php on line 172

Note: I have proveded only a small portion of the related code.

 <!--/**FORM**/-->
 {//function start

//for loop start
{


echo"<tr height=\"10\">
	  <td width=\"4%\" bgcolor=\"#fff8dc\" align=\"center\">
	     <input type=\"checkbox\" name=\"fee1_choice[$i]\" value=\"$code_id\"></td>
       	<td width=\"7%\" bgcolor=\"#fff8dc\" ><span class=\"style20\"><strong>$fee1_code</strong></span></td>
         	<td width=\"3%\" bgcolor=\"$bgcolor\" height=\"10\">
	     <input type=\"text\" name=\"fee1_unit[$i]\" size=\"1\" maxlength=\"2\" value =\"$fee1_unit\"/>
		</td>
       <td width=\"79%\" bgcolor=\"$bgcolor\" class=\"style20\"> $description </td>
       <td width=\"6%\" align=\"left\">$s_fee</td>\n";
echo"</tr>\n";

   }//end of loop

 //assign all arrays into single array for the return statement
 $all_array = array(fee_choice, fee_unit, fee_money, fee1_choice, fee1_unit, fee1_fee, fee2_choice, fee2_code, fee2_unit, fee2_describe, fee2_money, fee3_choice, fee3_code, fee3_unit, fee3_describe, fee3_money);

 //return array from function
 return ($all_array);

 }//end of function

 //unpack returned array
 list($fee_choice, $fee_unit, $fee_money, $fee1_choice, $fee1_unit, $fee1_fee, $fee2_choice, $fee2_code, $fee2_unit, $fee2_describe, $fee2_money, $fee3_choice, $fee3_code, $fee3_unit, $fee3_describe, $fee3_money )= $all_array;

<?php
/**PROCESS**/

/**data from form**/
$fee_unit = $_POST['fee_unit'];//array with the number of units
$fee_money = $_POST['fee_money'];//array selected fee

//filter blank indexes
$fee_unit = array_filter($fee_unit);  //line 155
$fee_money = array_filter($fee_money); //line 156


/**data from form**/
$fee1_unit = $_POST['fee1_unit'];//array with the number of units
$fee1_money = $_POST['fee1_money'];//array selected fee


//filter blank indexes
$fee1_unit = array_filter($fee1_unit); //line 171
$fee1_money = array_filter($fee1_money);//line 172

/** get array contents for insertion**/
$indices2 = array_keys($code1_id);
foreach($indices2 as $index2)
    {
        //individual value validation from 3 arrays
        $code1_id[$index2];
        $fee1_unit[$index2];
        $fee1_money[$index2];

    //validate unit
    $field_unit = $fee1_unit[$index2];//assign field to array for function
    check_unit_field($field_unit);//funtion to validate user entered numbers or message sent


	//insert statement goes here

}
 ?>   

I have added the code below to the process to get rid of
the errors but this creates another problem where the
for loop can't extract the data from the arrays.


//create array A
$fee_unit = array($fee_unit);
$fee_money = array($fee_money);


//create array B
$fee1_unit = array($fee1_unit);
$fee1_money = array($fee1_money);

🆒

    In your first code section, this line looks like a problem:

     $all_array = array(fee_choice, fee_unit, fee_money, fee1_choice, fee1_unit, fee1_fee, fee2_choice, fee2_code, fee2_unit, fee2_describe, fee2_money, fee3_choice, fee3_code, fee3_unit, fee3_describe, fee3_money);
    

    Should each of those array values be a variable (start with a "$")?

      Hi

      Thanks for the response. I used your suggetion see below.

      So far it appears to have corrected the problem. Continous use will reveal if the problem persist .

      
      $all_array = array($fee_choice, $fee_unit, $fee_money, $fee1_choice, $fee1_unit, $fee1_fee, $fee2_choice, $fee2_code, $fee2_unit, $fee2_describe, $fee2_money, $fee3_choice, $fee3_code, $fee3_unit, $fee3_describe, $fee3_money); 
      
      
        Write a Reply...