2011-12-22 11 views
0

私のオブジェクトnewUploadのオブジェクトプロパティに$_POST$_FILESという変数を保存しました。私はSQLの更新ステートメントを生成しようとしていますが、配列の結合に問題があります。複数の配列を組み合わせた配列を作成するにはどうすればよいですか?グローバルキーワードは紛らわしく、表示されないようにしてください。複数のアレイを新しいアレイに結合するにはどうすればよいですか?

$array = array(); 
foreach ($this->post as $value) { 
    array_push($array, $value); 
} 
foreach ($this->files as $key => $value) { 
    $list = array('name', 'type', 'size', 'extension', 'filetime'); 
    if (in_array($key, $list)) { 
     array_push($array, $value); 
    } 
} 
$array .= $this->moved['filepath']; 
echo $array; 

UPDATE: 間違いarray_push代わりの$array[] = $valueを使用。私は配列の範囲がforeachループのローカルだと思ったが、array_push関数が間違っていた。以下のコードが働いた。誰もが心から感謝しています。あなたのご意見は本当に私が解決策を考え出すのを助けました。

foreach ($this->files as $key => $value) { 
    $array2 = array('name', 'type', 'size', 'extension', 'filetime'); 
    if (in_array($key, $array2)) { 
     $array[] = $value; 
    } 
}   
$array = array_merge($array, $this->post); 
$array[] = $this->moved['filepath']; 
+0

あなたは配列が前組み合わせることにどのように見えるかの例を与えることができますどのように組み合わされて見えるべきか? – Jrod

答えて

1

PHPを実行する機能を持っているだけで、これはarray_mergeと呼ばれ、あなたがこれを行うだろう、あなたのケースでそれを使用する:

$array = array_merge($_POST, $_FILES); 
+1

フィルターがあります: '$ list = array( 'name'、 'type'、 'size'、 'extension'、 'filetime');' – hakre

+0

このように配列をマージすることもできます: $ result = $ array2 + $ array1; これは に等しい$ result = array_diff_key($ array1、$ array2)+ $ array2; これは、両方の配列が同じキーについて気にする必要がない場合 – FreeCandies

関連する問題