【发布时间】:2013-09-23 21:36:34
【问题描述】:
我正在尝试从数组中的每个变量中删除空格并将其替换为“-”。但是我只得到数组的最后一个变量。
我的代码:
<ul class="gap-items">
<?php
while ($query->have_posts()):
$query->the_post();
$post_type = get_post_type( get_the_ID() );
$key = 'field_5208f1f811702';
$value = get_field($key);
var_dump($value);
foreach ($value as $label) {
$label = strtolower($label);
$label = preg_replace("/[^a-z0-9_\s-]/", "", $label);
//Clean up multiple dashes or whitespaces
$label = preg_replace("/[\s-]+/", " ", $label);
//Convert whitespaces and underscore to dash
$label = preg_replace("/[\s_]/", "-", $label);
var_dump($label);
}
?>
<!-- Loop posts -->
<li class="item <?php echo $post_type ?> <?php echo $label ?>" id="<?php the_ID(); ?>" data-permalink="<?php the_permalink(); ?>">
所以$value 是一个数组。对于每个变量,我将删除空格并用破折号替换它。我需要在 foreach 函数之外回显每个变量。我还尝试先将变量内爆,但没有结果。这该怎么做?谢谢!
编辑: 第一个 var_dump($value); 给了我一个数组,如:
array(2) {
[0]=>
string(8) "Option 3"
[1]=>
string(8) "Option 4"
}
var_dump($label) 给出:
string(8) "option-3"
string(8) "option-4"
我只想回应这个:option-3 option-4
【问题讨论】:
-
为什么不能把
- 标签放在 foreach 中? (用 end-php 和 start-php 标签包装它)。
-
我在您的新编辑中注意到的一件事是您使用替代语法 (
while ():) 而不是使用标准语法,我在您的使其不完整的代码示例。但是你在while循环中使用foreach,这是一个正确的假设吗?此外,在此处发布时,请尝试整齐地格式化您的代码,这可以帮助您发现问题,并有助于我们跟进您正在做的事情。 -
除上述之外,由于这不是一个完整的sn-p,您能否制作一个可执行的小sn-p,我们可以测试并更好地描述您的结果是什么样的'喜欢吗?就目前而言,我无法运行您的代码并因此查看您的结果,这让我更难以尝试找出您的错误可能在哪里。
标签: php arrays variables foreach echo