可以使用 array_replace() 函数,将原数组按照新的 key 的顺序排序后返回一个新数组。示例代码如下:
```php
$keys = array('a', 'b', 'c');
$data = array('b' => 2, 'c' => 3, 'a' => 1);
$newData = array_replace(array_flip($keys), $data);
print_r($newData);
```
输出结果为:
```
Array
(
[a] => 1
[b] => 2
[c] => 3
)
```
其中, array_flip() 函数将新的 key 数组中的元素作为值,原来的 key 数组中的元素作为键,返回一个键值颠倒的新数组。然后将这个新数组和原始数据数组传给 array_replace() 函数,得到按照新 key 序排列的新数组。