Reputation: 4562
I have a function that I want to generate an array with. The format of the array is specific and only values need to be changed based on the arguments of my function. Here's the function:
function generatearray($name1, $field1, $name2, $field2) {
$language = ($user->language) ? $user->language : 'und';
$edit = array(
$name1 => array(
$language => array(
0 => array(
'value' => $field1,
),
),
), // ..... other elements $name2
);
return $edit;
}
$name2 and $field2 are optional arguments.
Upvotes: 0
Views: 65
Reputation: 2187
Not sure what the question is...but this code will do exactly what you're wanting to know about...a way to build an array based on up to 2 name/value pairs provided to a function.
printarray(generatearray('name_one','field_one','name_two','field_two'));
function generatearray($name1, $field1, $name2 = null, $field2 = null) {
$new_array = array();
$language = isset($user->language) ? $user->language : 'und';
$new_array[$name1][$language] = $field1;
if (!is_null($name2) && !is_null($field2)) {
$new_array[$name2][$language] = $field2;
}
return $new_array;
}
function printarray($arr) {
foreach ($arr as $user_key => $user_value) {
echo "User: ".$user_key."<br />";
foreach ($user_value as $language_key=>$language_value) {
echo "Language: ".$language_value."<br />";
}
}
}
Upvotes: 1