我在这个数组中获取数据,左边是帐户名,右边是订阅。
7ef:" 3sdc 12exf"
12ef:" 8ecg"
10ef:" 3ecf 3egf 3elm 3ecf 3egf 3elm "
平均7ef索引有2个数据串,两者之间有空格。和10ef有6个数据串。我需要像
这样的数据7ef:" 3sdc"
7ef:" 12exf"
12ef:" 8ecg"
10ef:" 3ecf "
10ef:"3egf"
10ef:"3elm"
10ef:"3ecf"
10ef:"3egf"
10ef:"3elm "
因为我必须发送它来制作它的csv文件。我怎么能用javascript做到这一点? 创建此代码就像
foreach ($subscriptions as $subscription) {
$str=$str.' '.$subscription->uuid;
}$anew[account[$i]]=$str;
编辑: 现在看完评论后,有人可以告诉我如何才能使它像
0:" 3sdc"
1:" 12exf"
2:" 8ecg"
就像我稍后会保存帐户一样,现在我想安排它们。
答案 0 :(得分:2)
这是不可能的,因为同一级别的Javascript对象只能有唯一键,所以它只会覆盖值
提示: 使用像这样的结构
{
7ef:["3sdc", "12exf"],
12ef:["8ecg"],
10ef:["3ecf","3egf", "3elm", "3ecf", "3egf", "3elm"]
}
代码:
for (var keys in a){
for (var data in a[keys]){
console.log(keys + " : "+ data)
}
}
a是持有上述js对象的var
答案 1 :(得分:2)
更改您的PHP代码以产生更好的结构:
$lst = [];
foreach ($subscriptions as $subscription) {
$lst[] = $subscription->uuid;
}
$anew[account[$i]] = $lst;
我想你有一个地方:
echo json_encode($anew);
这将在JavaScript中为您提供以下结构:
{
"7ef": ["3sdc", "12exf"],
"12ef": ["8ecg"],
"10ef": ["3ecf","3egf", "3elm", "3ecf", "3egf", "3elm"]
}
要将其输出为CSV,您可以执行此操作(假设数据位于response
):
const response = {
"7ef": ["3sdc", "12exf"],
"12ef": ["8ecg"],
"10ef": ["3ecf","3egf", "3elm", "3ecf", "3egf", "3elm"]
};
const csv = Object.keys(response).reduce( (acc, key) =>
acc.concat(response[key].map( uuid => [key, uuid].join(", ") ))
, []).join("\n");
console.log(csv);