繁体   English   中英

如何优化这个重复的 var 代码?

[英]How do I optimise this repeating var code?

我该如何优化? 这对我来说并没有真正的工作。 我需要这些代码行更少。

var a[0]="<?php echo print_r($tempa[0]["descr"], true);
    ?>";
    var a[1]="<?php echo print_r($tempa[1]["descr"], true);
    ?>";
    var a[2]="<?php echo print_r($tempa[2]["descr"], true);
    ?>";
    var a[3]="<?php echo print_r($tempa[3]["descr"], true);
    ?>";
    var a[4]="<?php echo print_r($tempa[4]["descr"], true);
    ?>";
    var a[5]="<?php echo print_r($tempa[5]["descr"], true);
    ?>";
    var a[6]="<?php echo print_r($tempa[6]["descr"], true);
    ?>";
    var b[0]="<?php echo print_r($tempb[0]["descr"], true);
    ?>";
    var b[1]="<?php echo print_r($tempb[1]["descr"], true);
    ?>";
    var b[2]="<?php echo print_r($tempb[2]["descr"], true);
    ?>";
    var b[3]="<?php echo print_r($tempb[3]["descr"], true);
    ?>";
    var b[4]="<?php echo print_r($tempb[4]["descr"], true);
    ?>";
    var b[5]="<?php echo print_r($tempb[5]["descr"], true);
    ?>";
    var b[6]="<?php echo print_r($tempb[6]["descr"], true);
    ?>";

说你有:

<?php 
    $tempa = [
        ["descr" => "A0"],
        ["descr" => "A1"],
        ["descr" => "A2"],
        ["descr" => "A3"],
        ["descr" => "A4"],
        ["descr" => "A5"],
        ["descr" => "A6"],
    ];

    $tempb = [
        ["descr" => "B0"],
        ["descr" => "B1"],
        ["descr" => "B2"],
        ["descr" => "B3"],
        ["descr" => "B4"],
        ["descr" => "B5"],
        ["descr" => "B6"],
    ];
?>

在 JavaScript 中你只需要:

const a = <?= json_encode(array_column($tempa, "descr")) ?>;
const b = <?= json_encode(array_column($tempb, "descr")) ?>;
console.log(a); //  ["A0", "A1", "A2", "A3", "A4", "A5", "A6"]
console.log(b); //  ["B0", "B1", "B2", "B3", "B4", "B5", "B6"]

通过使用 PHP 的array_columnjson_encode

或者如果你喜欢 ES6 语法:

const [a, b] = <?= json_encode([
  array_column($tempa, "descr"),
  array_column($tempb, "descr"),
]) ?>;
console.log(a, b);

使用foreach循环遍历每个变量,并输出该变量索引的 JavaScript 代码。

您不能使用var声明单个数组元素。 相反,使用json_encode()生成整个数组。

var a = <?php echo json_encode(array_column($tempa, "descr")); ?>;
var b = <?php echo json_encode(array_column($tempb, "descr")); ?>;
<?php for($i = 0; $i < 7; $i++):?>
   var a[<?=$i?>]="<?php echo print_r($tempa[$i]["descr"], true);
?>";
<?php endfor;?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM