1
配列を送信する$ _POSTがあります。そして私は、prehious配列を持っていますが、これは$ _POSTの値を含むか含まないキーを含んでいます。例については多次元配列を単純な配列と比較し、その差を抽出します。
:
$_post: Array ([0] => 13 [1] => 10 [2] => 52)
Previous: Array ([0] => Array ([collection_id] => 13 [artwork_id] => 21)
[1] => Array ([collection_id] => 11 [artwork_id] => 21))
だから私は$ _POST ITMSはすでにpreviuos配列([collection_id]キー)上に存在するかどうかを確認して、コメントを追加しました(この場合[1] => 10 [2] => 52
で)新しいものを抽出する必要がありますまた、変更されたものを新しい値でデータベースから削除(置換)する必要があります。
この私の現在のコードが、うまく機能していない...
$new_nodes = array();
$i = 0;
foreach($old_nodes as $node){
foreach ($collections as $collection) {
$new = array('collection_id' => $collection, 'artwork_id' => $artwork['id']);
if(array_diff($node, $new)){
if($collection > 0){
array_push($new_nodes, $new);
}
}
else{
unset($old_nodes[$i]);
}
}
$i++;
}
foreach($new_nodes as $node){
for ($i = 0; $i <= count($new_nodes); $i++) {
if(isset($new_nodes[$i])){
if(!array_diff($node, $new_nodes[$i])){
unset($new_nodes[$i]);
}
}
}
}
注:old_nodesは "前" で、$コレクションである "$ _POST"
'[1] => 10 [2] => 52'を追加した後の配列はどのように見えますか?彼らは新しいサブアレイになっていますか、それともサブアレイの1つに追加されていますか? –