[英]PHP sorted Array is not sorted in JS after json_encode
我在 PHP 中有兩個數組。 我像這樣對第一個數組進行排序:
arsort($array1);
然后像這樣輸出數組:
foreach ($array1 as $key => $val) {
$output .= "<tr>
<td>".$array1[$key]."</td>
<td>".$array2[$key]."</td>
</tr>";
}
print($output);
這是數組的樣子:
$array1 = [21, 12, 64, 87, 5, 823, ...]
$array2 = ["label1", "label2", "label3", "label4", ...]
$array2
每個元素都與$array1
一個元素相關聯,所以在這個例子中,元素“label1”應該鏈接到元素 21(兩個鍵都是 0)但是如果我對$array1
排序並且元素鍵發生變化,它們也應該在$array2
我還需要在 Javascript 中以相同的順序使用$array2
,所以我使用 json_encode 這樣的:
$arr2 = json_encode($array2);
$somejs = <<<ECHO
<script type="text/javascript">
var arr2 = $arr2;
for (i = 0; i < arr2.length; i++) {
console.log(arr2[i]);
}
</script>
ECHO;
echo $somejs;
但它不會像在 foreach 循環中那樣顯示,而是以其原始順序顯示(鍵:0, 1, 2, 3, ...)
是否有可能將密鑰傳遞給創建的 Javascript 數組,或者你們有其他更好的解決方案嗎?
希望我的問題很清楚告訴我是否有問題:)
謝謝
創建一個數組$array3
,其中包含$array2
的重新排序版本。 您可以在打印表格時執行此操作。
$array3 = array();
foreach ($array1 as $key => $val) {
$output .= "<tr>
<td>".$array1[$key]."</td>
<td>".$array2[$key]."</td>
</tr>";
$array3[] = $array2[$key];
}
print($output);
然后在創建 Javascript 時使用json_encode($array3)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.