Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中具有不同分隔符的内爆多维数组_Php_Arrays_Multidimensional Array_Implode - Fatal编程技术网

php中具有不同分隔符的内爆多维数组

php中具有不同分隔符的内爆多维数组,php,arrays,multidimensional-array,implode,Php,Arrays,Multidimensional Array,Implode,我有一个多维数组,我想让它内爆(然后可以爆炸回原来的多维数组)。有没有办法内爆,把钥匙留下 下面是我的阵列的示例: Array ( [draw] => 1 [columns] => Array ( [0] => Array ( [data] => 0 [name] => Edit [searchable] => true

我有一个多维数组,我想让它内爆(然后可以爆炸回原来的多维数组)。有没有办法内爆,把钥匙留下

下面是我的阵列的示例:

Array ( 
    [draw] => 1 
    [columns] => Array ( 
        [0] => Array ( 
            [data] => 0 
            [name] => Edit 
            [searchable] => true 
            [orderable] => true 
            [search] => Array ( 
                [value] => 
                [regex] => false ) )
        [1] => Array ( 
            [data] => 1 
            [name] => 
            [searchable] => true 
            [orderable] => true 
            [search] => Array ( 
                [value] => 
                [regex] => false ) ) 
        [2] => Array ( 
            [data] => 2 
            [name] => 
            [searchable] => true 
            [orderable] => true 
            [search] => Array ( 
                [value] => 
                [regex] => false ) ) 
以下是我尝试过但没有成功的方法:

$out = implode('::',array_map(function($a)
                                {
                                    return implode('&&',array_map(function($b)
                                                                    {
                                                                        return implode('~~',$b);
                                                                    },$array));
                                }));
我也试过:

foreach($array as $Value)
{
    if(is_array($Value))
    {
        foreach($Value as $Columns)
        {
            if(is_array($Columns))
            {
                foreach($Columns as $Search)
                {
                    if(is_array($Search))
                    {
                        $Search = implode("::",$Search);
                    }
                    //echo "<br>Search: "; print_r($Search);
                }
            }
            else
            {
                echo "<br>Columns: "; print_r($Columns);
                //$Columns = implode("&&",$Columns);
            }
        }
    }
    else
    {
        //$Value = implode("~~",$Value);
    }
}
//print_r($array);

至少我很确定我把所有的分隔符都放在正确的地方了。如果我不能保留这些键,只要分隔符在正确的位置就可以了,我可以稍后重新创建多维数组。

我成功地实现了这一点,并决定将结果发布给未来可能需要它们的所有人

我意识到我知道这些钥匙是什么,我可以在内爆过程中使用它们。所以我这样做了:

function Convert_From_Array($array)
{
    $Number = count($array['columns']);

    for ($i = 0 ; $i < $Number ; $i++)
    {            
        $array['columns'][$i]['search'] = implode('::',$array['columns'][$i]['search']);

        $array['columns'][$i] = implode('&&', $array['columns'][$i]);
    }
    $array['columns'] = implode('~~', $array['columns']);
    $array['order'][0] = implode('&&',$array['order'][0]);
    $array['order'] = implode('&&',$array['order']);
    $array['search'] = implode('&&',$array['search']);
    $array = implode('%%', $array);
}
由于
$keepost
是我试图内爆的多维数组。最终结果如下所示:

$PostKept = Convert_From_Array($KeepPost);
1%%0&&Edit&&true&&true&&::false~~1&&&&true&&true&&::false~~2&&&&true&&true&&::false~~3&&&&true&&true&&::false~~4&&&&true&&true&&::false~~5&&&&true&&true&&::false~~6&&&&true&&true&&::false~~7&&&&true&&true&&::false~~8&&&&true&&true&&::false%%0&&asc%%0%%25%%&&false%%QDefs

现在,我将不得不在以后将其重新组合起来。

为什么不在结构上使用
serialize()
,然后使用
unserialize()
将其重新组合起来


这个PHP内置代码肯定会比您自己编写的任何自定义代码工作得更好/更快/更安全。

太棒了,但愿我能早点发现它!
1%%0&&Edit&&true&&true&&::false~~1&&&&true&&true&&::false~~2&&&&true&&true&&::false~~3&&&&true&&true&&::false~~4&&&&true&&true&&::false~~5&&&&true&&true&&::false~~6&&&&true&&true&&::false~~7&&&&true&&true&&::false~~8&&&&true&&true&&::false%%0&&asc%%0%%25%%&&false%%QDefs