[英]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.