定期的に更新される値の配列があります。配列が更新されたら、更新された配列の新しい値を使用してアクションを実行したいと思います。
$old_node->field_name[0]['value'] = 'red'
$old_node->field_name[1]['value'] = 'yellow'
$old_node->field_name[2]['value'] = 'blue'
$updated_node->field_name[0]['value'] = 'green',
$updated_node->field_name[1]['value'] = 'red',
$updated_node->field_name[2]['value'] ='purple',
$updated_node->field_name[3]['value'] = 'blue',
したがって、「緑」と「紫」の値は、新しい配列の新しい値です。関数を介して新しい配列に追加された各値を実行する必要があります。何かのようなもの:
foreach(of the newly added values that are in the new array){
//do stuff;
}
一部の値は配列の更新時に削除される可能性があるため、key=>valueのペアが変更される可能性があります。
私はもう試した:
foreach($updated_node->field_name as $new_value){
if(!in_array($new_value['value'], $old_node->field_name) && $new_value['value'] !== NULL){
//Do stuff;
}
}
しかし、それはうまくいきません。また、array_diffとarray_intersectを使用して新しい値を選択しようとしましたが、どちらも機能していません。