Frank Stanovcak wrote: > I am trying to pass a multi dimmed array as a variable parameter to a custom > function to build a query for me. Here is the basic code and what I am > getting. > > $WhereList[0][0] = 'OESalesOrder.OrderNo'; > $WhereList[0][1] = '='; > $WhereList[0][2] = '2272'; > $SQLString = SQLCall('OESalesOrder',$FieldList,$WhereList); > > I then use a foreach in the function to process it. > > $i = 0; > foreach(func_get_arg(2) as $WhereArray) { > echo $WhereArray[0][0]; > if($i == 0) { > $SQLStmt .= ' ' . $WhereArray[$i][0] . ' ' . $WhereArray[$i][1] . ' ' . > $WhereArray[$i][2]; > $i += 1; > } else { > $SQLStmt .= ' ' . $WhereArray[$i][0] . ' ' . $WhereArray[$i][1] . ' ' . > $WhereArray[$i][2] . ' ' . $WhereArray[$i][3]; > $i += 1; > }; > }; > > What I get when it processes is the first three letters of [0][0] > [0][0] = O > [0][1] = E > [0][2] = S > > Did I do something wrong, or is this not possible? I have done an array > processing this way before, but not multidimmed. > > Frank. > > > Something like this should do. function SQLCall($table, $FieldList, $WhereList=array()) { # work with your field list... $where_parts = array(); foreach($WhereList AS $cond) { $where_parts[] = $cond[0].' '.$cond[1].' '.$cond[2]; } $WHERE = ''; if ( count($where_parts) ) { $WHERE = 'WHERE ' . join(' AND ', $where_parts); } # put it all together. } -- Jim Lucas "Some men are born to greatness, some achieve greatness, and some have greatness thrust upon them." Twelfth Night, Act II, Scene V by William Shakespeare -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php