Почему он режет мои нули 000?
<?php

$subject = 'от 160 000 руб / шт.';

preg_match_all('/(\d)/', $subject, $result, PREG_PATTERN_ORDER);
$price = implode($result[0]);

echo $price; // OUT: 160000

?>
А почему он должен их учитывать? Убери пробел между 160 и 000, и тогда у тебя 160000 будет, а не 160 и NULL.
И вообще, лучше напиши: $price = "от".160000. "руб / шт.";