0

私はフォームを持っており、次を使用してデータをバックエンド php スクリプトに送信しています。

var fields = $('#myform').serializeArray();

そして、投稿を行います。私の入力の一部は配列として名前が付けられているため、データが投稿されると、以下のような配列になります。アトリビュート ピースをサブ配列を持つ 1 つのアトリビュート配列に変換するにはどうすればよいですか?

[1]=>
  array(2) {
    ["name"]=>
    string(20) "attribute[26][higher]"
    ["value"]=>
    string(2) "21"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(20) "attribute[27][higher]"
    ["value"]=>
    string(2) "20"
  }
4

1 に答える 1

0

使用できますeval

フォーム PHP ドキュメント

eval() 言語構造は、任意の PHP コードを実行できるため、非常に危険です。したがって、その使用はお勧めできません。この構文を使用する以外に選択肢がないことを慎重に確認した場合は、ユーザーが提供したデータを事前に適切に検証せずに渡さないように特に注意してください。

$array = array(array("name" => "attribute[26][higher]","value" => "21"),array("name" => "attribute[27][higher]","value" => "20"));
foreach ( $array as $value ) {
    $value["name"]  = str_replace(array("[","]") ,  array("['","']"),  $value["name"]);
    eval("\$" . $value["name"] . " =  array() ;" );
    eval("\$" . $value["name"] . " = " . $value["value" ] . ";" );
}

var_dump($attribute[26]['higher'] , $attribute[27]['higher']);

出力

int 21
int 20    
于 2012-10-03T18:44:54.457 に答える