Измените элемент массива (например, 4-10) на разделенный трубами список (например, 4 | 5 | 6 | 7 | 8 | 9 | 10)

Последние два дня я пытался выполнить поиск в Google и на всех форумах, но, похоже, не могу найти никакого ответа, который удаленно помогает мне с этой проблемой.

У меня есть сток .csv файл, в котором мне нужно изменить значения размеров обуви для работы с Woocommerce. Размеры обуви разные в каждом ряду.

Размеры в CSV перечислены так: 4-10, 5-12, 3-9 и т.д. один набор чисел в строке 4-10, Я вставил файл в массив в моем сценарии php.

Так что для каждой обуви у меня есть такой массив:

Array
(
[0] => 4578
[1] => kors
[2] => red
[3] => wedge
[4] => 4-10
)

Мне нужно принять последнее значение, например 4-10 и измените их на что-то вроде этого: 4|5|6|7|8|9|10,

Поэтому в основном мне нужно взять первое число в элементе и увеличить его на 1 и отделить его с помощью символа «|», пока оно не достигнет значения последнего числа. Тогда мне нужно это заменить 4-10 в элементе с 4|5|6|7|8|9|10,

-1

Решение

Это должно работать для вас:

(Здесь я сначала получаю последний элемент массива и explode() это с - в качестве разделителя. После этого я просто создаю массив с range() где я использую $start а также $end переменная. В конце я просто сохраняю элемент обратно implode()об этом.)

<?php

$arr = [4578, "kors", "red", "wedge", "4-10"];

list($start, $end) = explode("-", $arr[count($arr)-1]);
$arr[count($arr)-1] = implode("|", range($start, $end));

print_r($arr);

?>

выход:

Array ( [0] => 4578 [1] => kors [2] => red [3] => wedge [4] => 4|5|6|7|8|9|10 )
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector