簡體   English   中英

PHP排序數組在json_encode后沒有在JS中排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM