Предположим, у меня есть этот массив PHP:
$booklist =
Array
(
[0] => Peppa / Season 2 / 43 The Quarrel / Page 1
[1] => Nursery Rhymes / Wheels On The Bus / Page 1
[2] => Wonderskills / Starter Book 2 / Unit 1 At The Firehouse / Part 3 / Page 3
[3] => Oxford Phonics World / Level 2 Short Vowels / Unit 1 Short A / Page 7
[4] => Peppa / Season 2 / 43 The Quarrel / Page 1
[5] => Nursery Rhymes / Twinkle Twinkle / Page 1
[6] => Wonderskills / Starter Book 2 / Unit 1 At The Firehouse / Part 2 / Page 17
[7] => Oxford Phonics World / Level 1 The Alphabet / Unit 8 / Review W X Y Z / Page 2
[8] => Peppa / Season 2 / 42 Granny And Grandpas Attic / Page 1
[9] => Nursery Rhymes / The Phonics Song / Page 1
[10] => Wonderskills / Starter Book 2 / Unit 1 At The Firehouse / Part 2 / Page 4
[11] => Peter Pan / Level 1 / Page 1
[12] => Peppa / Season 2 / 42 Granny And Grandpas Attic / Page 1
[13] => Nursery Rhymes / The Phonics Song / Page 1
[14] => Donald Duck / Page 19
[15] => Donald Duck / Page 18
[16] => Oxford Phonics World / Level 1 The Alphabet / Unit 8 / Letter Z / Page 2
)
Я хотел бы просмотреть каждый элемент и добавить его в новый массив, ЕСЛИ новый массив еще не содержит элемент с начальным префиксом (первый '/' является разделителем).
Поэтому окончательный массив будет содержать только следующие значения:
$**finalArray **=
Array
(
[0] => Peppa / Season 2 / 43 The Quarrel / Page 1
[1] => Nursery Rhymes / Wheels On The Bus / Page 1
[2] => Wonderskills / Starter Book 2 / Unit 1 At The Firehouse / Part 3 / Page 3
[3] => Oxford Phonics World / Level 2 Short Vowels / Unit 1 Short A / Page 7
[4] => Peter Pan / Level 1 / Page 1
[5] => Donald Duck / Page 19
)
Заранее большое спасибо.
Я пробовал много комбинаций таких вещей, как strpos() и str_starts_with() с array_push(), но просто не могу заставить это работать. В итоге я либо получаю тот же массив, либо пустой массив, либо массив с десятками тысяч элементов.
$finalArray = [];
foreach ($booklist as $book){
foreach($finalArray as $finalItem){
$array = explode(" / ", $book);
$mainBranch = $array[0];
if(0 === strpos($finalItem, $mainBranch){ /// problems in here
array_push($finalArray, $book);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... fix-of-the