Если вы боретесь с функциями массива, то простой цикл foreach и проверка интересующего вас поля будут хорошо выполняться
$A = [ ['id' => 23, 'merchant_id' => 23 ],
['id' => 24, 'merchant_id' => 46 ],
['id' => 25, 'merchant_id' => 21 ],
['id' => 26, 'merchant_id' => 29 ],
];
foreach ( $A as $key => $t ) {
if( $t['merchant_id'] != 46 ){
unset($A[$key]);
}
}
print_r($A);
RESULT
Array
(
[1] => Array
(
[id] => 24
[merchant_id] => 46
)
)