2013-10-07 57 views
3

直到今天,我從來沒有真正想過這個,但是在搜索網絡之後,我沒有真正找到任何東西。也許我在搜索中沒有正確的措辭。代碼挑戰:將var_dump的數組轉換爲json

給定一個嵌套的數組,其中var_dumped

<pre>array(3) { 'id' => string(19) "as-agent-to-shipper" 'name' => string(19) "as-agent-to-shipper" 'children' => array(1) { 
[0] => 
array(3) { 
    'id' => 
    string(28) "agility-logistics-s-a-de-c-v" 
    'name' => 
    string(30) "AGILITY LOGISTICS S.A. DE C.V." 
    'data' => 
    array(2) { 
    'band' => 
    string(22) "-AS AGENT TO SHIPPER -" 
    'relation' => 
    string(13) "Buyer of band" 
     } 
    } 
    } 
} 

面臨的挑戰是:什麼是用於將var_dumped數組JSON最優化的方法是什麼? 這只是一個正則表達式的問題嗎?或者有其他方法嗎?我正在尋找創造力。

+0

只是print_r而不是vardump並顯示結果 –

+0

我們能否首先看到您的嘗試?我想這將不得不遞歸。 – halfer

+0

不能[serialize()](http://php.net/manual/en/function.serialize.php)或** [json_encode()](http://php.net/manual/en/function .json-encode.php)**幫助你呢? –

回答

3

這很可能是不可能的使用RegEx解析這個結構。

可以爲它編寫專門的解析器,但考慮到PHP使得no promises on its format,這是一個非常糟糕的主意。在較小的PHP版本更新中,格式可能會更改,解析器將停止工作。

甚至更​​多,var_dump是有損的,也就是說,有些情況下您無法僅通過其表示恢復對象的狀態。最簡單的例子就是資源。 var_dump打開文件返回resource(5) of type (stream),這是完全不足以做任何有用的事情。總而言之,它聽起來像個不好的主意,不管什麼問題都可以通過它解決,應該以不同的方式解決。