[英]How to Remove PHP Array Implode Character from Beginning of String
我正在開發一個項目,需要使用字符分隔來破壞數組。 我已經在項目的其他部分成功地使用了join
和implode
,但我無法在本節中使用它。
$dbQuery = "SELECT ftc.*, fc.name
FROM facilities f
LEFT JOIN facility_to_category ftc ON f.fid = ftc.fid
LEFT JOIN facility_categories fc ON ftc.cid = fc.cid
WHERE f.listing_year = '2011'
AND fc.parent_cid = '2'
AND f.fid = ('".$listing_fid."')";
$dbResult = $dbc->query($dbQuery,__FILE__,__LINE__);
$num_results = $dbc->num_rows($dbResult);
echo '<h3>Demographics</h3>
<div>';
while($catdata = $dbc->fetch($dbResult)) {
$demographics = array();
$demographic_names = array('',trim($catdata->name));
$demographics = implode(' '.chr(149).' ',$demographic_names);
print $demographics;
}
結果是這樣的:
Demographics
• Affluent • Children • Hard-to-Reach • Parents
代替
Demographics
Affluent • Children • Hard-to-Reach • Parents
我嘗試在'.chr(149)周圍使用雙引號而不是單引號。 我嘗試使用逗號或條形或只是空格。 我嘗試了不同的修剪方式而不是修剪$catdata->name
。
我也考慮過嘗試字符串連接,但是最后我會在結尾而不是開始時添加一個額外的字符。 Implode
或join
似乎是更好的方式。
我錯過了什么?
我不確定我明白你要做什么,但為什么不用
$demographics_names = array();
while($catdata = $dbc->fetch($dbResult)) {
array_push($demographics_names, trim($catdata->name));
}
$demographics = implode(' '.chr(149).' ',$demographic_names);
print $demographics;
謝謝你們每一個人的幫助! 我最終重新格式化了查詢和數組。 這是最終的代碼:
$dbQuery = "SELECT ftc.*, fc.name
FROM facilities f
LEFT JOIN facility_to_category ftc ON f.fid = ftc.fid
LEFT JOIN facility_categories fc ON ftc.cid = fc.cid
WHERE f.listing_year = '2011'
AND fc.parent_cid = '2'
AND f.fid = ('".$listing_fid."')";
$dbResult = $dbc->query($dbQuery,__FILE__,__LINE__);
$num_results = $dbc->num_rows($dbResult);
echo '<h3>Demographics</h3>
<div>';
while($catdata = $dbc->fetch($dbResult)) {
$demographics = array();
if (is_array($demographics)) {
$demographic_names[] = trim($catdata->name);
}
}
$demographics = join(' '.chr(149).' ',$demographic_names);
print $demographics;
結果是:
Demographics
Affluent • Children • Hard-to-Reach • Parents
希望這對其他人有幫助!
您正在將一個空白元素插入到您正在崩潰的數組中:
$demographic_names = array('',trim($catdata->name));
^--- here
好像你有一個空白的demographic_name
。 在結果數組上使用array_filter
。
檢查第一個數組是否為空。
while($catdata = $dbc->fetch($dbResult)) {
$demographics = array();
$demographic_names = array('',trim($catdata->name));
if(!empty($demographic_names))
{
$demographics = implode(' '.chr(149).' ',$demographic_names);
print $demographics;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.