我有这些数组
$array_sku = {
[0]=> 'first'
[1]=> 'second'
[2]=> 'third'
}
$array_Title = {
[0]=> 'firstTitle'
[1]=> 'secondTitle'
[2]=> 'thirdTitle'
}
$array_Description= {
[0]=> 'firstDescription'
[1]=> 'secondDescription'
[2]=> 'thirdDescription'
}
我在php中有一个程序,可以将这些信息保存在csv文件中,如下所示:
| SKU | | TITLE | | DESCRIPTION |
| first| | firstTitle| | firstDescription |
|second| |secondTitle| | secondDescription|
| third| | thirdTitle| | thirdDescription |
但是现在我创建了一个新数组,具有新的后缀(-大字母)
$array_sku_new = {
[0]=> 'first-A'
[1]=> 'first-B'
[2]=> 'second-VG'
[3]=> 'second-RT'
[4]=> 'second-C'
[5]=> 'third'
}
我想通过以下方式将这些信息保存在csv中:
| SKU | | TITLE | | DESCRIPTION |
| first-A | | firstTitle| | firstDescription |
| first-B | | firstTitle| | firstDescription |
|second-VG| |secondTitle| | secondDescription|
|second-RT| |secondTitle| | secondDescription|
|second-C | |secondTitle| | secondDescription|
| third | | thirdTitle| | thirdDescription |
有人知道我该怎么做吗?
这是我的代码:
for($i=0;$i<count($array_sku_new );$i++){
$prod = array(
'SKU' => $array_sku_new [$i],
'TITLE' => $array_Title [$i],
'DESCRIPTION' => $array_Description [$i],
);
$prods[] = $prod;
}
它不会很好用,因为所有新的skus都没有其他信息。
答案 0 :(得分:0)
使用示例数据来执行此操作的一种方法是使用连字符,并结合使用array_count_values和array_values来重置密钥。
稍后,您可以索引到该数组中以获得循环次数。要获得$array_sku_new
,$array_Title
和$array_Description
的正确索引,可以使用for循环中的计数器和单独的计数器来获取$array_sku_new
的正确索引。>
例如:
$totals = array_values(array_count_values(array_map(function ($x) {
return explode('-', $x)[0];
}, $array_sku_new)));
$counter = 0;
for ($j = 0; $j < count($totals); $j++) {
for ($i = 0; $i < $totals[$j]; $i++) {
$prod = array(
'SKU' => $array_sku_new [$counter],
'TITLE' => $array_Title [$j],
'DESCRIPTION' => $array_Description [$j],
);
$prods[] = $prod;
$counter ++;
}
}