簡體   English   中英

如何計算PHP中的每個字段

[英]How to count each field in php

我有以下代碼:

function cat_fields($fields)
{
global $cfg;
$fields['cat_furl'] = str_replace('%cat_safename%', $fields['cat_safename'], $cfg->getVar('urlformat_cat'));
$fields['cat_furl'] = $cfg->getVar('site_url') . str_replace('{cat_safename}', $fields['cat_safename'], $fields['cat_furl']);
$fields['cat_flink'] = '<a id="a'  . count($fields) .  '" href="' . $fields['cat_furl'] . '" title="' . $fields['cat_title'] . '">' . $fields['cat_name'] . '</a>';
return $fields;
}

而且我試圖計算$fields['cat_flink'] = '<a id="a' . count($fields) . '"每個字段$fields['cat_flink'] = '<a id="a' . count($fields) . '"我嘗試使用id="a' . count($fields) . '" $fields['cat_flink'] = '<a id="a' . count($fields) . '" id="a' . count($fields) . '"但它返回的是字段總數,而不是對其進行計數。 我怎么能指望他們EACH

應該

<a id="a1"....>
<a id="a2"....>

相反,它在呼應我

<a id="15"....>
<a id="15"....>
..... and so on

請幫我解決這個問題。

您正在嘗試計算數組中的所有字段; 引自PHP手冊

計算數組中的所有元素或對象中的某些元素。

要獲取索引(即您要查找的數字),您將必須設置一個起始數字並遍歷所有字段,直到獲得所有索引,並在每次遍歷循環時遞增該數字。

但是,您的方法似乎僅用於一次迭代,這意味着您必須將數字存儲在其他位置。 一個好的方法是將數字作為參數添加到函數中:

function cat_fields($fields, $number)
{
global $cfg;
$fields['cat_furl'] = str_replace('%cat_safename%', $fields['cat_safename'], $cfg->getVar('urlformat_cat'));
$fields['cat_furl'] = $cfg->getVar('site_url') . str_replace('{cat_safename}', $fields['cat_safename'], $fields['cat_furl']);
$fields['cat_flink'] = '<a id="a'  . $number .  '" href="' . $fields['cat_furl'] . '" title="' . $fields['cat_title'] . '">' . $fields['cat_name'] . '</a>';
return $fields;
}

完成后,您應該編輯要多次調用該函數的循環(我想):

for ($i = 1; $i < count($yourArray); $i++) {
    // code
    $foo = cat_fields($yourArray, $i);
    // more code
}

希望能有所幫助。

編輯

我已經從第131-141行編輯了pastebin:

if(($rs = $db->execute($sql)) && (!$rs->EOF))
{
    $i = 1;
    while(!$rs->EOF)
    {
        $rs->fields = seoscripts_prepare_cat_fields($rs->fields, $i);

        $tpl->assign_array_d('tool_category_row', $rs->fields);
        $tpl->parse_d('tool_category_row');
        $rs->MoveNext();
        $i += 1;
    }
}

count($fields)這樣的count($fields)將返回您需要添加i=0;的整數的字段數i=0;

和增加它i++;

嘗試這個

function cat_fields($fields)
{
global $cfg;
$fields['cat_furl'] = str_replace('%cat_safename%', $fields['cat_safename'], $cfg->getVar('urlformat_cat'));
$fields['cat_furl'] = $cfg->getVar('site_url') . str_replace('{cat_safename}', $fields['cat_safename'], $fields['cat_furl']);
$str = '';
$i = 0;
foreach($fields as $field)
{
   $str . = '<a id="a'  . $i .  '" href="' . $fields['cat_furl'] . '" title="' . $fields['cat_title'] . '">' . $fields['cat_name'] . '</a>';
   $i++;
}
$fields['cat_flink'] = $str;
return $fields;
}

嘗試這個

    function cat_fields($fields)
        {
        global $cfg;
        $fields['cat_furl'] = str_replace('%cat_safename%', $fields['cat_safename'], $cfg->getVar('urlformat_cat'));
        $fields['cat_furl'] = $cfg->getVar('site_url') . str_replace('{cat_safename}', $fields['cat_safename'], $fields['cat_furl']);
$i=0;
        foreach($fields as $field)
        {
           $fields['cat_flink'] = '<a id="a'.$i.'" href="' . $field['cat_furl'] . '" title="' . $field['cat_title'] . '">' . $field['cat_name'] . '</a>';
i++;
        }
        return $fields;
        }

如果您要計算數組,則

回聲計數($ array);

將給出數組中每個元素的計數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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