Использовать array_intersect_key
$str = "1,2,3";
$array = array("1"=>"apple", "2"=>"banana", "3"=>"orange");
$keyarray = explode(",",$str);
echo implode(",", array_intersect_key($array, array_flip($keyarray)));
https://3v4l.org/gmcON
Один вкладыш:
echo implode(",", array_intersect_key($array, array_flip(explode(",",$str))));
Беспорядок для чтения, но комментарий выше может объяснить, что он делает.
Это означает, что вам не нужен $ keyarray