Если вам не принципиально, чтобы во вложенных массивах индексы были «1» и «2», то так:
<?php
$text = "img32.jpg | img75.jpg\nimg72.jpg | img01.jpg";
$array = explode("\n", $text);
$result = array();
foreach ($array as $str)
{
$result[] = explode(' | ', $str);
}
echo '<pre>';
var_dump($result);
echo '</pre>';
Результатом будет:
array(2) {
[0]=>
array(2) {
[0]=>
string(9) "img32.jpg"
[1]=>
string(9) "img75.jpg"
}
[1]=>
array(2) {
[0]=>
string(9) "img72.jpg"
[1]=>
string(9) "img01.jpg"
}
}
Функция
explode разбивает строку на массив элементов, используя разделитель.
В вашем случае разбивать приходится дважды:
— по символу конца строки "\n" (обязательно в двойных кавычках),
— и по ' | ' (вертикальная черта, отбитая с обеих сторон пробелами).