У меня есть многомерный массив, который я хотел бы взорвать (а затем позже сможет взорваться обратно в исходный многомерный массив). Есть ли способ взорвать, удерживая ключи?
Вот пример того, как выглядит мой массив:
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
По крайней мере, я уверен, что у меня есть все разделители в нужном месте. Если я не могу держать ключи в порядке, пока разделители находятся в правильном месте, и я могу позже создать многомерный массив.