我在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
中的元素相关联,因此在此示例中元素&#34; label1&#34;应该链接到元素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数组,或者你们有其他更好的解决方案吗?
希望我的问题清楚告诉我是否有问题:)
由于
答案 0 :(得分:2)
制作一个包含$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)
。