2010-10-05 127 views
0

我有一個名爲$ array_all的數組;PHP&數組問題

該數組將總是具有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) 
); 
?> 
+0

發佈一些代碼,我們可能會提供幫助。 – methodin 2010-10-05 17:24:53

+0

你的wp函數需要多少個參數? – 2010-10-05 17:25:29

+0

如果你發佈了錯誤(如果有的話),這也會有所幫助 – 2010-10-05 17:27:36

回答

3

Mmh的一個,可以避開環路只有:

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

這也將解決後面的逗號proble.m。

另一方面,您將一個數組傳遞給僅包含一個元素(字符串)的post__in。我想你真正想要的是

'post__in' => $faux_array 

$faux_array是已經與ID的數組。
閱讀Post & Page Parameters,那裏你可以看到,你需要一個陣列後的ID的傳遞給函數,而不是與一個字符串值的數組:

  • 「post__in」 =>陣列(5,12,2,14,7) - 包含,允許您指定要檢索的帖子ID
+0

賓果!菲利克斯,感謝百萬隊友! – 2010-10-05 22:16:00

1
'post__in' => $faux_array 

試試這個,如果不交的代碼,你手動進行的工作,請工作。

已編輯。現在檢查。

+0

謝謝,但結果與我的結果相同。它只輸出一個結果。這工作:'post__in'=>數組(781,797,) – 2010-10-05 17:43:13

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); 
} 
+0

仍然沒有它的工作,並不是原來的問題,但謝謝你的答覆。 – 2010-10-05 22:16:47