Php 多维数组到字符串的转换
我有一个动态多维数组,我想把它转换成字符串。 以下是一个例子:Php 多维数组到字符串的转换,php,arrays,string,type-conversion,Php,Arrays,String,Type Conversion,我有一个动态多维数组,我想把它转换成字符串。 以下是一个例子: Array ( [data] => check [test1] => Array ( [data] => Hello ) [test2] => Array ( [data] => world ) [test3] => Array ( [data] => bar [tst] =>
Array
(
[data] => check
[test1] => Array
(
[data] => Hello
)
[test2] => Array
(
[data] => world
)
[test3] => Array
(
[data] => bar
[tst] => Array
(
[data] => Lorem
[bar] => Array
(
[data] => doller
[foo] => Array
(
[data] => sit
)
)
)
)
[test4] => Array
(
[data] => HELLO
[tst] => Array
(
[data] => ipsum
[bar] => Array
(
[data] => Lorem
)
)
)
)
字符串的示例是:
check&hello&world&bar...lorem&doller...sit ....
我试过很多东西。我甚至检查了其他SO问题的答案。比如:
&
但是运气不好。php有一些内置函数可以做到这一点。与var_dump、json_编码和var_导出类似。但是如果你想控制更多的输出,可以使用递归函数
function arrToStr(array $data)
{
$str = "";
foreach ($data as $val) {
if (is_array($val)) {
$str .= arrToStr($val);
} else {
$str .= $val;
}
}
return $str;
}
您可以随意设置额外的换行符和空格的格式。首先通过
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($input_array));
$flat = iterator_to_array($it, false);
false
防止数组键冲突
然后使用内爆
$str = implode('&', $flat);
您可以简单地使用
array\u walk\u recursive
如下
$result = [];
array_walk_recursive($arr, function($v) use (&$result) {
$result[] = $v;
});
echo implode('&', $result);
您可以使用以下递归函数将任何多维数组转换为字符串
public function _convertToString($data,&$converted){
foreach($data as $key => $value){
if(is_array($value)){
$this->_convertToString($value,$converted);
}else{
$converted .= '&'. $value;
}
}
}
您可以通过以下方式调用上述函数:
$str = array(
"data" => "check",
"test1" => array(
"data" => "Hello",
"test3" => array(
"data" => "satish"
)
),
"test2" => array(
"data" => "world"
)
);
$converted = "";
//call your function and pass your array and reference string
$this->_convertToString($str,$converted);
echo $converted;
输出如下:
check&Hello&satish&world
您可以修改代码以满足您的需求
如果需要进一步的帮助,请告诉我。我会对这种类型的数组使用递归:
echo visit($your_array);
function visit($val){
if( !is_array($val) ){
return $val;
}
$out="";
foreach($val as $v){
$out.= "&".visit($v);
}
return $out;
}
是否要在单个字符串中转换整个数组?你能为它添加一个例子吗?你有没有试过
$var=print\r($myArray,true)代码>?@htmlhell,他给出的上述代码看起来像是print\u r的输出。print\u r($myArray)将如何帮助转换字符串中的整个数组?@SatishSojitra我已经编辑了我的评论。@Uchiha这是json\u decode
Dang的输出,这就是我要说的……快告诉我!