Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Массивы php  (Прочитано 675 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн R170

  • Автор темы
  • Участник
  • *
  • Сообщений: 144
    • Просмотр профиля
Массивы php
« : 01 Февраля 2013, 18:28:00 »
Вопрос такой есть у нас масив
$f[0][1] = "1";
$f[0][2] = "1";
$f[0][3] = "1";
$f[0][4] = "1";
Размер массива $f узнаем так count($f);
А как узнать количество елементов $f[0] ?

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: Массивы php
« Ответ #1 : 01 Февраля 2013, 18:38:40 »
Вопрос такой есть у нас масив
$f[0][1] = "1";
$f[0][2] = "1";
$f[0][3] = "1";
$f[0][4] = "1";
Размер массива $f узнаем так count($f);
А как узнать количество елементов $f[0] ?


count($f[0])Так разве не работает?
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн R170

  • Автор темы
  • Участник
  • *
  • Сообщений: 144
    • Просмотр профиля
Re: Массивы php
« Ответ #2 : 01 Февраля 2013, 18:39:44 »
for($c=0;$c!=count($f1);$c++) if($f1[$c]!="") $f[] = $f1[$c];

for($c1=0;$c1!=count($f1[$c]);$c1++){
echo ".";
}

}

Notice: Undefined offset: 1 in /opt/lampp/htdocs/test/index.php on line 17

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: Массивы php
« Ответ #3 : 01 Февраля 2013, 18:47:35 »
for($c=0;$c!=count($f1);$c++) if($f1[$c]!="") $f[] = $f1[$c];

for($c1=0;$c1!=count($f1[$c]);$c1++){
echo ".";
}

}

Notice: Undefined offset: 1 in /opt/lampp/htdocs/test/index.php on line 17


<?
$int[0][0] = 0;
$int[0][1] = 1;
$int[0][2] = 2;
$int[0][3] = 3;


print(count($int[0]));
?>


Результат: 4.

В вашем коде ошибка. Проход делается вложенным циклом:


for($i=0;i<count($f1);$i++) { // $i
/* Тут можно обращаться к элементам первого порядка */


  for($j=0;j<count($f1[$i]);$j++) { // $j
  /* Тут можно обращаться к элементам второго порядка */
  } // $j




} // $i

Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28474
    • Просмотр профиля
Re: Массивы php
« Ответ #4 : 06 Февраля 2013, 08:35:35 »
Не проще ли

Код: (php) [Выделить]
function count_elements($var)
{
  $result = 0;
  if(is_array($var))
  {
    foreach($var as $arr)
    {
      $result += count_elements($arr);
    }
  }
  else
  {
    $result = count($var);
  }
  return $result ;
}

P.S.
Написано "в лоб", естественно, это можно сделать изящнее.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.076 секунд. Запросов: 25.