[英]PHP dimensional array to Javascript array WITHOUT JSON
由於服務器版本的原因,我正在嘗試不使用json編碼器將PHP多維數組轉換為javascript數組。
多維數組的示例:
Array (
[0] => Array (
[0] => 18
[1] => Région Grand EST
[2] => GE )
[1] => Array (
[0] => 17
[1] => Région Grand OUEST / NORD
[2] => GO N )
[2] => Array (
[0] => 25
[1] => Région Grand OUEST / SUD
[2] => GO S )
)
目前沒有多維數組我正在使用此功能:
function js_str($s) {
return '"' . addcslashes($s, "\0..\37\"\\") . '"';
}
function js_array($array) {
if (is_array($array)) {
$temp = array_map('js_str', $array);
return '[' . implode(',', $temp) . ']';
}
return '[-1]';
}
但是我不能將其用於多維,我試圖遞歸地做類似的事情來處理任何大小的數組。
得到類似的結果:
myArray = [[18, 'Région Grand EST', 'GE'],[17, 'Grand OUEST / NORD', 'GO N'], [25, 'Région Grand OUEST / SUD', 'GO S']];
沒有json_encode真的很難找到答案,謝謝您的幫助。 (是的,我正在史前服務器上開發)
我將使用如下遞歸函數來解決此問題:
function js_array($array) {
if (is_array($array)) {
$temp = array();
$output = '[';
foreach ($array AS $key=>$value) {
$temp[] .= "'$key':" . js_array($value);
}
$output .= implode(',', $temp);
$output .= "]";
} else {
$output .= "'$array'";
}
return $output;
}
我們在這里所做的是評估數組的每個元素,以查看它是否也是數組。 每個級別都會深入自身,直到我們剩下簡單的key:value對。
您可以根據需要編輯特殊字符或刪除陣列鍵。
感謝Danielml01的幫助。 這里使用的解決方案:
function js_array($array) {
if (is_array($array)) {
$temp = array();
$isObject = false;
foreach ($array AS $key=>$value) {
if (is_numeric($key))
$temp[] .= js_array($value);
else {
$isObject = true;
$temp[] .= "'$key':" . js_array($value)."";
}
}
if ($isObject)
$output = "{".implode(',', $temp)."}";
else
$output = "[".implode(',', $temp)."]";
}
else
$output = "'".$array."'";
return $output;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.