$array1 = json_decode('[{"code": "7x1", "descr": "text1"},{"code": "7x2", "descr": "text"},{"code": "7x5", "descr": "text"}]');
$array2 = json_decode('[{"value":"7x1"},{"value":"7x2"}]');
$array2
найти (отфильтровать) записи в $array1
. Для этих целей вроде как должны подойти функции array_filter()
и in_array()
$result = array_filter($array1, fn($row) => in_array($row['code'], $array2));
$values = array_column($array2, 'value');
$result = array_filter($array1, fn($n) => in_array($n->code, $values));
$array2_ = array_map(function($row){return $row['value'];}, $array2); // тут бы value вытащить в отдельный массив
$result = array_filter($array1, function($row) use ($array2_) {return in_array($row['code'], $array2_);});