javascript - PHP 排序数组在 json_encode 后在 JS 中未排序

标签 javascript php arrays sorting

我在 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...)

是否可以通过某种方式将 key 传递给创建的 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)

关于javascript - PHP 排序数组在 json_encode 后在 JS 中未排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32662742/

相关文章:

php - 在 Javascript 中使用 PHP 变量和 JSON

iphone - 在 iOS 6 的 TableView 中对数组进行排序

c - 双指针将 char 数组值分配给使用 char 指针的结构的 char 数组

Javascript 导致 rails 中的链接出现问题

javascript - W2UI Grid 选择选择类型为 'cell' 的列并右键单击任何单元格?

Javascript正则表达式突出显示短语匹配

php - 如何显示浏览量最多的前10名?

javascript - 在 JavaScript 中检查空文本框的值时如何过滤掉它们?

javascript - 使用 jquery 模式屏幕的两个相同的 POST 操作,一个有效,一个无效?

C# 在将值从文件读入数组时表现得很奇怪