簡體   English   中英

如何從字符串的開頭刪除PHP數組內爆字符

[英]How to Remove PHP Array Implode Character from Beginning of String

我正在開發一個項目,需要使用字符分隔來破壞數組。 我已經在項目的其他部分成功地使用了joinimplode ,但我無法在本節中使用它。

$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

我也考慮過嘗試字符串連接,但是最后我會在結尾而不是開始時添加一個額外的字符。 Implodejoin似乎是更好的方式。

我錯過了什么?

我不確定我明白你要做什么,但為什么不用

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM