PHP foreach循环

时间:2011-01-07 07:22:59

标签: php javascript

我需要将PHP数组中的值传输到JavaScript数组中,以便可以在我的应用程序中使用它,我已经设法达到这个目的:

var Descriptions = array(<?php 
                foreach ($tasks as $task) {
                $ID = $task['ID'];
                $description = $task['description'];

                echo $ID . "[" . $description . "]" . ",";  
                }

                ?>);

它的工作正常除了一件事:我不知道如何告诉PHP在最后一个数组值之后没有放一个逗号。额外的逗号导致语法错误,因此它会破坏我的代码。

提前感谢任何想法, 雷光

6 个答案:

答案 0 :(得分:2)

快速而肮脏的方式:

for($i = 0, $c = count($tasks); $i < $c; $i++) {
   $task = $tasks[$i];
   ...
   echo $ID . "[" . $description . "]" . (($i != $c-1) ? "," : ''); 
}

显然还有其他方法可以实现这一点,一种方法是建立一个字符串,然后使用trim()函数:

$tasks_str = '';
foreach(...) {
   ...
   $tasks_str .= ...
}

echo trim($tasks_str, ',');

或者,(我最喜欢的),您可以构建一个数组,然后在其上使用implode

$tasks_array = array();
foreach(...) {
   ...
   $tasks_array[] = ...
}

echo implode(',', $tasks_array);

答案 1 :(得分:1)

不要尝试手动构建它,使用json_encode

答案 2 :(得分:1)

var Descriptions = <?=json_encode($tasks);?>;

答案 3 :(得分:0)

var DescriptionsString = <?php 
            foreach ($tasks as $task) {
            $ID = $task['ID'];
            $description = $task['description'];

            echo $ID . "[" . $description . "]" . ",";  
            }

            ?>;
var Descriptions = DescriptionsString.split(',');

答案 4 :(得分:0)

试,

var Descriptions = array(<?php 
                $str = '';
                foreach ($tasks as $task) {
                $ID = $task['ID'];
                $description = $task['description'];

                $str .= $ID . "[" . $description . "]" . ",";  
                }
                 echo trim($str,',');      
                ?>);

答案 5 :(得分:0)

不容错过任何趋势:

$out = array();
foreach ($tasks as $task) {
    $ID = $task['ID'];
    $description = $task['description'];

    $out[] = $ID . "[" . $description . "]";  
}
echo implode(',', $out);

使用implode()