2017-01-17 14 views
0

私は、爆縮したい(そして元の多次元配列に戻すことができる)多次元配列を持っています。暗黙のうちにキーを保持する方法はありますか?ここで私は成功せずにしようとしたものだPHPで異なるデリミタを持つ多次元配列を埋め込む

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); 
をここで

は私の配列がどのように見えるかの例です

爆縮の終わりのように見せたいのは、

です。
[draw] => 1 :: [columns] => && [0] => ~~ [data] => 0 ~~ [name] => Edit ~~ [searchable] => true ~~ [orderable] => true ~~ [search] => %% [value] => %% [regex] => false && [1] => ~~ [data] => 1 ~~ [name] => ~~ [searchable] => true ~~ [orderable] => true ~~ [search] => %% [value] => %% [regex] => false 

少なくとも私は正しい場所にすべての区切り文字を持っていると確信しています。区切り文字が正しい場所にある限り、キーを保持できない場合は、後で多次元配列を再作成することができます。

答えて

1

serialize()を構造体に使用してから、unserialize()を返すのはなぜですか?

このPHPの組み込み関数は、自分で作成したカスタムコードよりも、より速く/より速く/安全に動作します。

+0

これはすばらしいことです。 – Mike

0

私はこれをうまく使いこなして、将来的に必要になる可能性があるすべての人に結果を投稿すると考えました。

私は鍵が何であるかを知っており、爆縮プロセスでそれらを使用できることを認識しました。

$PostKept = Convert_From_Array($KeepPost); 

$KeepPostは、私が内破しようとしている多次元配列された状態で:私はこのようにそれを呼び出し、この機能を使用するためにその後

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); 
} 

:だから私はこれをしませんでした。最終的な結果は次のようになります。

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 

これですべてをまとめて戻す必要があります。