如何使用另一个数组值的子字符串对数组进行排序

I have something like a vocabulary list with every vocabulary containing a number and the word. I have the same list of vocabulary but unsorted and in another language, the numbers match the meaning. So the same word has in both languages the same number. How can I match both vocabularys together and being in the same order of the main language? Example:

Input:
English Array (sorted)    German Array (unsorted)
74 Apple                  6 Auto
6 car                     564 Zug       
564 train                 74 Apfel

Output: the German Array is sorted in the same way as the English Array

74 Apple                  74 Apfel
6 car                     6 Auto      
564 train                 564 Zug 

Help is much appreciated. Thank you :)

Inputs:

$english=["74 Apple","6 car","564 train"];
$german=["6 Auto","564 Zug","74 Apfel"];

First, create an array with keys in the desired order:

array_map(function($v)use(&$sorting_keys){return $sorting_keys[substr($v,0,strpos($v,' '))]='';},$english);
//var_export($sorting_keys);
// array (
//     74 => '',
//     6 => '',
//     564 => '',
// )

Next, reassign keys to the german array elements based on the leading id number

array_map(function($v)use(&$keyed_german){return $keyed_german[substr($v,0,strpos($v,' '))]=$v;},$german);
//var_export($keyed_german);
// array (
//     6 => '6 Auto',
//     564 => '564 Zug',
//     74 => '74 Apfel',
// )

Finally, transfer the values from $keyed_german to $sorting_keys (and reset the keys if you wish with array_values()):

$sorted_german=array_values(array_replace($sorting_keys,$keyed_german));
var_export($sorted_german);

Output:

array (
  0 => '74 Apfel',
  1 => '6 Auto',
  2 => '564 Zug',
)