我试图将多维数组转换为具有特定格式的字符串.
function convert_multi_array($array) { foreach($array as $value) { if(count($value) > 1) { $array = implode("~",$value); } $array = implode("&",$value); } print_r($array); } $arr = array(array("blue","red","green"),array("one","three","twenty")); convert_multi_array($arr);
应该输出:蓝色〜红色〜绿色和一个〜三个~20个……等等更多的子阵列.
我只想说,我无法生成任何远离我想要的结果的代码.两个小时后,这是我能得到的最好的.我不知道为什么内爆的行为与他们通常对弦乐的行为不同,或者我可能只是没有看到这一点.你能为数组值使用implode吗?
您正在覆盖$array,其中包含原始数组.但是在foreach中正在处理$array的副本,因此您基本上只是分配一个新变量.
你应该做的是遍历子数组并将它们“转换”为字符串,然后内爆结果.
function convert_multi_array($array) { $out = implode("&",array_map(function($a) {return implode("~",$a);},$array)); print_r($out); }