我想将这个数组输出为 CSV 文件。Array( [dc=example,dc=com] => Array ( [o] => example.com [objectclass] => Array ( [0] => simpleSecurityObject [1] => dcObject [2] => organization ) [dc] => example ) [uid=newton,dc=example,dc=com] => Array ( [sn] => Newton [objectclass] => Array ( [0] => simpleSecurityObject [1] => dcObject [2] => organization ) [uid] => Newton [mail] => newton@ldap.forumsys.com [cn] => Isaac Newton ))目前,当我打印所有数据时,这就是我得到的。dn,o,objectclass,dc,sn, uid, mail, cndc=example,dc=com,example.com,simpleSecurityObject:dcObject:organization,exampleuid=newton,dc=example,dc=com,Newton,simpleSecurityObject:dcObject:organization,Newton,newton@ldap.forumsys.com,Isaac Newton这只是以 CSV 格式打印的所有数据,但按照它们最初在数组中排列的顺序排列。我想确保所有元素实际上都与它们应该的值匹配。这是我想要的输出:dn,o,objectclass,dc,sn, uid, mail, cndc=example,dc=com,example.com,{simpleSecurityObject,dcObject,organization},example, , , , uid=newton,dc=example,dc=com, ,{simpleSecurityObject,dcObject,organization}, ,Newton,Newton,newton@ldap.forumsys.com,Isaac Newton请注意,在第一个元素中,我们没有 sn、uid、mail 和 cn 属性,因此这些属性留空。第二个元素缺少 o 和 dc,因此它们是空白的。目前数据也出现故障。我如何确保数据位于正确的位置确保任何缺失的字段都保留为“”,而不是仅仅跳到下一个元素?
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
改变这一行
foreach ( $val as $key => $value ) {
有了这个
foreach ($attributes_list as $key){
$value=$val[$key];
因此,即使字段为空,您也始终会打印所有字段,并且所有字段都保留在原处。如果您不想收到有关丢失密钥的警告,只需检查是否存在并在不存在时打印“”。
然后
$value_array = implode(":", $value);
$value_array = rtrim($value_array, ":");
$value_array = $value_array.",";
变成
$value_array = implode(",", $value);
$value_array = "{".$value_array."},";
应该rtrim没有必要。Implode将字符串放在值之间。
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消