Hi @landonjochim
Here is the sample flow that helps you in completing the filter operation.
I have stored both input array in compose action:

[
{
"ID":100,
"Title":"Title 100",
"PrincipalID": 5
},
{
"ID":101,
"Title":"Title 101",
"PrincipalID": 3
},
{
"ID":102,
"Title":"Title 102",
"PrincipalID": 4
}
]

[
{
"ID":100,
"Title":"Title 100",
"PrincipalID": 5
},
{
"ID":101,
"Title":"Title 101",
"PrincipalID": 3
},
{
"ID":102,
"Title":"Title 102",
"PrincipalID": 4
}
]
Next, add Select action to create a simple array of principalID which we will be required during filtering:

Click "Switch Map to text mode" button:

Add below expression in Map textbox to collect the value of PrincipalID:

Finally, add filter array action. Pass the output of compose action (the input array which was not used in select action).

Click 'Edit in advanced mode' button and write the below query:
@not(contains(body('Select'), item()?['PrincipalID']))
The output of filter array gives the resultant array.
Output:

If this helps & solves your problem, please remember to give a 👍 and accept my solution as it will help others in the future.