PHP Array вопрос?

0

Надеюсь, вы в порядке. Мой вопрос:

В MYSQL у меня есть таблица с этим типом поля

Имя поля: TAGS Значение: xavier, celine, marise, leon, john, cathy, polux, maurice


В PHP я делаю это

$xwords = array();
function array_rpush(&$arr, $item)
{
  $arr = array_pad($arr, -(count($arr) + 1), $item);
}

$tags = requete("SELECT tags FROM tbl_tags LIMIT 1;");
while($dtags = mysql_fetch_assoc($tags)){
  $words .= array_rpush($xwords, $dtags['tags']);
}

// MY ARRAY XWORDS FOR DEBUG
//
// Array ( [0] => xavier, celine, marise, leon, john, cathy, polux, maurice
//

My script нужно найти первую букву каждого слова в этом списке и проверить, совпадает ли он с A/B/C (я создаю индексную страницу A-Z)

// COUNT $XWORDS VALUE
$total = count($xwords);
// total =1
for($i=0; $i < $total; $i++)
{
 $wtags = explode(",",$xwords[$i]);
 // wtags = Array ( [0] => xavier [1] => celine [2] => marise... )
  while (list($idx,$val) = each($wtags)) {
    echo $val{0}."<br>";
    echo substr($val,0,1)."<br>";
  }
}

echo $val{0}."<br>"; ИЛИ echo substr($val,0,1)."<br>" дайте мне только x и ничего после (пока дайте мне только первую букву первой записи в массиве... amazing:))

Возможно, вы можете помочь мне найти решение. Благодаря

Теги:

2 ответа

2
Лучший ответ

Проблема с вашим кодом заключается в том, что он генерирует:

Массив ([0] = > "xavier" [1] = > "celine" [2] = > "marise"...)

Итак, $val [0] = "". Попробуйте обрезать ($ val):

$val = trim($val);
print $val[0];
  • 0
    Хороший улов +1.
0
$sum = array();
foreach($wtags as $tag){
  $tag = trim($tag);
  empty($sum[$tag{0}])  ?    // if we don't have a $sum element for this letter
              $sum[$tag{0}] = 1  :    // we initialize it
              $sum[$tag{0}]++;        // else, we sum 1 element to the count.
  //$tag{0} is the first letter.
}

// the array $sum has the total of tags under each letter
//
// $sum[x] = 1
// $sum[c] = 2
// $sum[m] = 2
// $sum[l] = 1
// $sum[j] = 1
// $sum[p] = 1
  • 0
    Что означает этот синтаксис фигурных скобок?
  • 0
    Это означает «символ в позиции 0 этой строки»
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню