пробегитесь в цикле по все элементам массива. если элемент массива обладает ключом parent_id - это товар, добавляйте его в двумерный массив result, где первым ключом будет значение parent_id. Если parent_id не установлен - это категория, сложите элемент с массивом result.
с учетом представленнового формата ответа, вот такой код:
$answer = array(
array("id" => 1, "parent_id" => 100, "name" => "Стулья"),
array("id" => 2, "parent_id" => 100, "name" => "Столы"),
array("id" => 5, "parent_id" => 1, "name" => "Стул Сакура", "price" => 5691, "img" => "lorempixel.com/900/900/?q=5", "props" => array()),
array("id" => 9, "parent_id" => 2, "name" => "Стол Византия", "price" => 5268, "img" => "lorempixel.com/900/900/?q=9","props" => array())
);
$result = array();
foreach($answer as $item) {
if(isset($item['price'])) $result[$item['parent_id']][] = $item;
else $result[$item['id']] = $item;
}
var_dump($result);