0

配列を生成したい関数があります。配列の形式は特定のものであり、関数の引数に基づいて値のみを変更する必要があります。関数は次のとおりです。

 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 と $field2 はオプションの引数です。

4

1 に答える 1

1

質問が何であるかはわかりません...しかし、このコードは、あなたが知りたいことを正確に実行します...関数に提供された最大2つの名前/値ペアに基づいて配列を構築する方法。

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 />";
    }
}
}
于 2012-09-20T19:36:18.573 に答える