nge php arrayhp,使用PHP循环和数组将多个值写入单个csv单元格

我想使用PHP循环和数组将多个值写入单个csv单元格。使用PHP循环和数组将多个值写入单个csv单元格

$data = array

(

3 => array

(

'name' => 'Mars',

'type' => 'Terrestrial Planet',

'diameter' => 0.532,

'mass' => 0.11,

'rings' => 0,

'position' => 4,

'gases' => array

(

0 => 'CO2',

1 => 'N2',

2 => 'Ar'

),

'satellites' => array

(

0 => array

(

'name' => 'Phobos',

'radius' => 6.20

),

1 => array

(

'name' => 'Deimos',

'radius' => 6.20

)

)

)

);

function writeCSV($array){

$str = [];

$fp = fopen('file.csv', 'w');

fputcsv($fp, array('Name','Type','Diameter','Mass','Rings','Position','Gases','Satellite-Name','Satellite-Radius'),"\t");

foreach ($array as &$fields) {

$str[] = $fields['name'];

$str[] = $fields['type'];

$str[] = $fields['diameter'];

$str[] = $fields['mass'];

$str[] = $fields['rings'];

$str[] = $fields['position'];

if(is_array($fields['gases'])){

foreach ($fields['gases'] as $gas)

array_push($str, $gas);

}

if(is_array($fields['satellites'])){

foreach ($fields['satellites'] as $satellite)

$str[] = $satellite['name'];

foreach ($fields['satellites'] as $satellite)

$str[] = $satellite['radius'];

}

fputcsv($fp, $str);

$str = [];

}

}

writeCSV($data);

?>

这样做的结果,写道:

Name Type Diameter Mass Rings Position Gases Satellite-Name Satellite-Radius

Mercury,"Terrestrial Planet",0.382,0.06,0,1

Venus,"Terrestrial Planet",0.949,0.82,0,2,CO2,N2

Earth,"Terrestrial Planet",1,1,0,3,N2,O2,Ar,Moon,1737.1

Mars,"Terrestrial Planet",0.532,0.11,0,4,CO2,N2,Ar,Phobos,Deimos,6.2,6.2

到文件中。我真的需要它通过拦截卫星写入多个(气体,卫星名称卫星半径)值到一个空格分隔并用引号引用,说一个单细胞,即

Name Type Diameter Mass Rings Position Gases Satellite-Name Satellite-Radius

Mercury,"Terrestrial Planet",0.382,0.06,0,1

Venus,"Terrestrial Planet",0.949,0.82,0,2,"CO2 N2"

Earth,"Terrestrial Planet",1,1,0,3,"N2 O2 Ar",Moon,1737.1

Mars,"Terrestrial Planet",0.532,0.11,0,4,"CO2 N2 Ar","Phobos Deimos","6.2 6.2"

我想这会发生,气体循环以某种方式,但我正在努力连接或增加气体和卫星循环,以获得数据到一个阵列单元值。

2014-03-30

cookie

+0

首先将气体和卫星追加到单个字符串中,然后将它们推送到堆栈,即这些条目需要位于单个索引中(请参阅fputcsv文档,说明为什么当前实现出错)。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值