Как провести слияние двух строк в PHP

150
04 октября 2017, 10:07

Прошу помощи решить данную проблему.

Есть две строки, пример:

1) Строка с путями к картинкам (разделенные запятыми):

images/img1.jpg,images/img2.jpg,images/img3.jpg

2) Строка с названиями картинок (разделенные запятыми):

img-name1,img-name2,img-name3

Как провести слияние, чтобы получить следующее:

images/img1.jpg||img-name1,images/img2.jpg||img-name2,images/img3.jpg||img-name3
Answer 1

Вот что пришло в голову первым:

<?php
    $str1 = 'images/img1.jpg,images/img2.jpg,images/img3.jpg';
    $str2 = 'img-name1,img-name2,img-name3';
    $arr1 = explode(',', $str1);
    $arr2 = explode(',', $str2);
    $finish_arr = array();
    for($i=0; $i<count($arr1);$i++){
        $finish_arr[$i] = $arr1[$i].'|'.$arr2[$i];
    }
    $finish_str = implode(',', $finish_arr);
    print_r($finish_str);
?>

С начало с помощью метода explode создаем массив из строки. Потом пройдя по циклу, прикрепляем значение двух массивов. А в конце делаем обратное с помощью метода implode.

Answer 2

С учётом того, что название картинок не меняется:

$images = explode(",", "images/img1.jpg,images/img2.jpg,images/img3.jpg");
$result = array_reduce($images, function($result, $image) {
  $imageNumber = filter_var($image, FILTER_SANITIZE_NUMBER_INT);
  return $result .= sprintf("%s||img-name%s,", $image, $imageNumber);
});
$result = rtrim($result, ',');
READ ALSO
$wp_filesystem return null

$wp_filesystem return null

Глобальная переменная $wp_filesystem в WordPress возвращает nullВ чем может быть проблема?

127
Почему этот код выведет тройку?

Почему этот код выведет тройку?

Уважаемые коллеги! В одном соревновании столкнулся с таким кодом:

202
Как вызвать метод класа через итератор?

Как вызвать метод класа через итератор?

У меня есть контейнер, типом которого есть мой клас A, контейнер, к примеру, set< class A>Я создаю итератор set::iterator iter = set< class A >

198
Как отформатировать время HH:MM

Как отформатировать время HH:MM

Подскажите как получить минуты с 0 если минуты < 10?

265