PHP&数组问题

时间:2010-10-05 17:22:49

标签: php arrays

我有一个名为$ array_all;

的数组

此数组总是有3个可能的值:

  • 1,
  • 1,2
  • 1,2,3,

我在foreach循环中从数组创建了一个字符串,并在结尾处连接了一个逗号。

所以,现在我有一个很好的字符串,它按照应有的方式输出确切的值。

1,2,3,我可以从浏览器中复制此输出并将其插入我的wordpress功能,一切都完美显示。

当我直接在wordpress函数中插入这个字符串变量时会出现问题,它会失败。

有人有什么想法吗?

以下代码:

<?php 
$faux_array = array();
$faux_array_all;

if($five_loans != ''): 
    $faux_array[] = "781";
endif; 
if($logbook_loans != ''): 
    $faux_array[] = "797";
endif;
if($easy_money != ''): 
    $faux_array[] = "803";
endif;

foreach($faux_array as $faux_array_value): 
    $faux_array_all .= $faux_array_value . ',';
endforeach;

echo $faux_array_all;

$args = array
(
    'posts_per_page' => 10,
    'post_type' => 'lender',
    'order' => 'ASC',
    'orderby' => 'date',
    'post__in' => array($faux_array_all)
);
?>

3 个答案:

答案 0 :(得分:3)

Mmh for one,你可以通过以下方式避免循环:

$faux_array_all = implode(',', $faux_array);

这也将解决尾随逗号问题。

另一方面,您将数组传递给只包含一个元素(字符串)的post__in。我想你真正想要的是

'post__in' => $faux_array

因为$faux_array已经是一个带ID的数组 阅读Post & Page Parameters,您可以看到需要将帖子ID数组传递给该函数,而不是一个字符串值的数组:

  
      
  • 'post__in'=&gt; array(5,12,2,14,7) - 包含,允许您指定要检索的帖子ID
  •   

答案 1 :(得分:1)

'post__in' => $faux_array

试试这个,如果它不起作用,请发布你手动制作的代码。

编辑。现在检查一下。

答案 2 :(得分:1)

您需要删除尾随逗号

foreach($faux_array as $faux_array_value): 
    $faux_array_all .= $faux_array_value . ',';
endforeach;
if (substr($faux_array_all)-1,1) == ",") {
$faux_array_all = substr($faux_array_all,0,-1);
}