Для одного известного значения поместите его в начало итерации через многомерный массив:
foreach ( $array as $subarray ) {
//beginning of the loop where you do things with your array
if ( $subarray->$key == '$valueToRemoveArrayBy' ) continue;
//iterate your stuff
}
Просто пропускает всю эту итерацию, если ваши критерии верны.
С другой стороны, вы можете сделать наоборот. Может быть легче читать, в зависимости от вкуса:
foreach ( $array as $subarray ) {
if ( $subarray->$key != $valueToRemoveArrayBy ) {
//do stuff
}
}
Я не знаю. Может быть, это выглядит неприлично для некоторых. Хотя мне это нравится. Коротко, быстро и просто.
Похоже, что целью фильтрации в этом случае было распечатать некоторое содержимое и пропустить его, основываясь на определенных критериях. Если вы выполняете фильтрацию перед циклом, вам придется дважды проходить весь цикл - один раз для фильтрации и один раз для печати содержимого.
Если вы делаете это так внутри цикла, это не требуется. Вы также не будете изменять свой массив, кроме как внутри цикла, что может быть полезно, если вы не всегда хотите фильтровать, в частности, по этим критериям.