以下是用于获取图库中图像的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
请帮帮我..谢谢
答案 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()
implode()
使用逗号