echo json_encode([1]);array(1) { [0]=> int(1) }array(1) { [0]=> int(1) }var_dump([1]), или var_dump(json_decode(json_encode([1]),true))смотрите откуда у вас берется такой результат. Скорее всего вы уже после получения сделали var_dump от json_decode данных. cURL получает те данные, что скрипт бы вывел в браузер, поэтому без echo или print не обойтись. return не из этой истории вовсе. В скрипте отдающем данные не помешало бы еще отдать заголовок, 'Content-Type: application/json' так грамотнее)