I have two two-dimensional arrays (actually they are nested associative arrays) with predefined struture: `$array1` and `$array2`. First array lists all objects by their id numbers:

```
$array1 = array(
    array(id => 1),
    array(id => 2),
    array(id => 3),
    array(id => 4),
    array(id => 5)
);

```

The second array lists relationships between objects (e.g., object 2 is connected to objects 3, 4, and 5):

```
$array2 = array(
    array(id1 => 1, id2 => 2),
    array(id1 => 2, id2 => 3),
    array(id1 => 2, id2 => 4),
    array(id1 => 2, id2 => 5)
);

```

The aim is to replace id values from the `$array2` with corresponding indices from `$array1`. So, in my case the result should be:

```
0 1 // index of value 1 (id1) in $array1 is 0, index of 2 (id2) is 1
1 2
1 3
1 4

```

Pasted below is my current work. First of all I "convert" `$array1` to one-dimensional array:

```
foreach ($array1 as $row) {
    $array3[] = $row['id'];
}

```

Then I use `array_search` function and go through `$array2` and search the `$array3` for a given value and returns the corresponding key in `$array3`:

```
foreach ($array2 as $row) {
  $value1 = $row['id1'];
  $key1 = array_search($value1, $array3);
  echo $key1;
  echo "\t";
  $value2 = $row['id2'];
  $key2 = array_search($value2, $array3);
  echo $key2;
  echo '<br />';
}

```

My question is straightforward: is there a more elegant way to do that (i.e., without using array\_search function).

Many thanks in advance for any ideas.

Best, Andrej