将数组元素(例如 4-10)更改为管道分隔列表(例如 4|5|6|7|8|9|10)

Change array element (e.g. 4-10) into pipe separated list (e.g. 4|5|6|7|8|9|10)

过去两天我已经尝试在 google 和所有论坛中搜索,但似乎找不到任何远程帮助我解决这个问题的答案。

我有一个 stock feed .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|5|6|7|8|9|10 替换元素中的 4-10

这应该适合你:

(这里我先获取数组的最后一个元素然后explode() it with - as delimiter. After this I simply create an array with range() where I use the $start and $end variable. At the end I simply save the element back by implode()'ing它。)

<?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 )