获取foreach php循环之外的值

时间:2016-10-11 21:13:13

标签: php loops foreach

以下是用于获取图库中图像的ID的代码

<?php $images = get_field('photogallery');?>

        <?php foreach( $images as $image ): ?>
                <?php echo $image['ID']; ?>
              <?php echo ','; ?>
        <?php endforeach; ?>

我得到了输出

 1102 , 3380 , 3348 , 3354 , 3355 , 

我想在循环之外得到这个,因为结果必须在其他短代码中使用,我也看到每个数字后面都有一个空格。

结果必须是

 1102,3380,3348,3354,3355 

请帮帮我..谢谢

2 个答案:

答案 0 :(得分:3)

每次声明都不需要每次都放<?php ... ?>。请注意,每次您使用?>关闭时,所有字符都会发送到客户端,直到下一个开头<?php,这就是为什么您在每个逗号周围获得空格的原因:

<?php foreach( $images as $image ): ?>#
#####<?php echo $image['ID']; ?>#
#####<?php echo ','; ?>#
<?php endforeach; ?>

(我将空格更改为#,这样您就可以看到发送到客户端(浏览器)的字符)

您可以使用array_map来过滤&#34;过滤&#34;只有ID项和implode加入它们,那么您只需将结果存储在变量($result这里)。

<?php
$images = get_field('photogallery');
$result = implode(',', array_map(function ($i) { return $i['ID']; }, $images));
echo $result;
?>

现在,您可以在以后随处使用$result

答案 1 :(得分:1)

更简单:

<?php echo implode(',' array_column($images, 'ID')); ?>
  • 使用array_column()
  • 提取ID值
  • implode()使用逗号
  • 的数组值