我想將一個大的yaml文件轉換爲PHP數組源代碼。我可以讀取yaml代碼並獲取一個PHP數組,但使用var_dump($ array),我得到僞代碼作爲輸出。我想打印這個數組作爲有效的PHP代碼,所以我可以將它粘貼到我的項目中,然後放棄yaml。打印陣列爲代碼
打印陣列爲代碼
回答
您正在查找var_export
。
ie:'$ string_representation = var_export($ complex_array,TRUE);' – ErichBSchulz 2013-09-21 00:13:06
非常感謝。 – Iscariot 2015-10-27 23:25:26
有沒有一種方法來var [參數]而不是array()? – Oliboy50 2016-10-19 10:08:57
您可以使用var_export,serialize(在預訂端有反序列化),或者甚至使用json_encode(並在接收端使用json_decode)。最後一個產生的輸出可以被任何可以處理JSON的東西處理。
不知道爲什麼,但我無法在任何地方找到令人滿意的代碼。
快速寫下這個。讓我知道如果你發現任何錯誤。
function printCode($array, $path=false, $top=true) {
$data = "";
$delimiter = "~~|~~";
$p = null;
if(is_array($array)){
foreach($array as $key => $a){
if(!is_array($a) || empty($a)){
if(is_array($a)){
$data .= $path."['{$key}'] = array();".$delimiter;
} else {
$data .= $path."['{$key}'] = \"".htmlentities(addslashes($a))."\";".$delimiter;
}
} else {
$data .= printCode($a, $path."['{$key}']", false);
}
}
}
if($top){
$return = "";
foreach(explode($delimiter, $data) as $value){
if(!empty($value)){
$return .= '$array'.$value."<br>";
}
};
return $return;
}
return $data;
}
//REQUEST
$x = array('key'=>'value', 'key2'=>array('key3'=>'value2', 'key4'=>'value3', 'key5'=>array()));
echo printCode($x);
//OUTPUT
$array['key'] = 'value';
$array['key2']['key3'] = 'value2';
$array['key2']['key4'] = 'value3';
$array['key2']['key5'] = array();
希望這可以幫助別人。
- 1. java陣列打印爲空
- 2. 打印陣列
- 3. 打印陣列
- 4. 打印陣列
- 5. 打印陣列
- 6. 打印陣列
- 7. 要打印代碼列表?
- 8. 不打印陣列
- 9. C++打印陣列
- 10. Laravel打印陣列
- 11. 打印在陣列
- 12. 空陣列打印
- 13. 陣列打印奇怪的號碼
- 14. C++:打印/分配簡單陣列打印亂碼
- 15. 打印陣列列表
- 16. 代碼點火器打印陣列尺寸
- 17. 存儲在陣列和打印陣列
- 18. 打印陣列的子陣列
- 19. 使用1d陣列打印2d陣列
- 20. 打印陣列[1]陣列[n]
- 21. 陣列中的陣列打印元素
- 22. PHP JSON打印陣列陣列
- 23. 陣列打印爲json,數組和xml
- 24. 打印哈希散列作爲矩陣
- 25. AWK打印字作爲陣列
- 26. 打印PHP代碼
- 27. PHP打印代碼(打印成紙)
- 28. 的NSDictionary - 打印陣列
- 29. 打印陣列在PHP
- 30. 打印陣列信息
出於好奇,你爲什麼想要溝渠yaml?這是一個非常棒的格式,您和其他人可以手動編輯。 :-) – Benson 2011-02-28 10:44:34
如果將它與'包含'一個php數組進行比較,那麼在每個請求上解析YAML文件相對較慢。在我目前的項目中,速度更重要。 – 2011-02-28 11:07:54