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数组,或者你们有另一个,也许更好的解决方案?
希望我的问题是清楚的,如果有问题告诉我:)
谢谢
创建一个包含$array2
重新排序版本的数组$array3
。您可以在打印表格时执行此操作。
$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)